礼悟:
好好学习合思考,尊师重道存感恩。叶见寻根三返一,江河湖海同一体。
虚怀若谷良心主,愿行无悔给最苦。读书锻炼强身心,诚劝且行且珍惜。
javaEE:7
javaSE:1.8
JSTL:1.2.2
server:tomcat 8.5
browser:Chrome/Firefox
os:windows7 x64
ide:MyEclipse 2017
MyJsp.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ page errorPage="errorPageForMyJsp.jsp" %><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> ?<head> ???<base href="<%=basePath%>"> ???????<title>My JSP ‘MyJsp.jsp‘ starting page</title> ???<meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> ???<meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--> ?</head> ???<body> ?<% ??int n = (1 / 0); ?%> ???This is my JSP page. <br> ?</body></html>
errorPageForMyJsp.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html> ?<head> ???<base href="<%=basePath%>"> ???????<title>My JSP ‘errorPageForMyJsp.jsp‘ starting page</title> ???<meta http-equiv="pragma" content="no-cache"><meta http-equiv="cache-control" content="no-cache"><meta http-equiv="expires" content="0"> ???<meta http-equiv="keywords" content="keyword1,keyword2,keyword3"><meta http-equiv="description" content="This is my page"><!--<link rel="stylesheet" type="text/css" href="styles.css">--> ?</head> ???<body> ???<h1>出错啦</h1><br> ?</body></html>
浏览器查看MyJsp.jsp
注:由于处理错误的页面 没有isErrorPage属性,所以不会设置状态码为500
扩展
经过tomcat处理后,生出的java文件
errorPageForMyJsp_jsp.java
/* * Generated by the Jasper component of Apache Tomcat * Version: Apache Tomcat/8.5.23 * Generated at: 2017-12-01 04:01:59 UTC * Note: The last modified time of this file was set to * ??????the last modified time of the source file after * ??????generation to assist with modification tracking. */package org.apache.jsp;import javax.servlet.*;import javax.servlet.http.*;import javax.servlet.jsp.*;import java.util.*;public final class errorPageForMyJsp_jsp extends org.apache.jasper.runtime.HttpJspBase ???implements org.apache.jasper.runtime.JspSourceDependent, ????????????????org.apache.jasper.runtime.JspSourceImports { ?private static final javax.servlet.jsp.JspFactory _jspxFactory = ?????????javax.servlet.jsp.JspFactory.getDefaultFactory(); ?private static java.util.Map<java.lang.String,java.lang.Long> _jspx_dependants; ?private static final java.util.Set<java.lang.String> _jspx_imports_packages; ?private static final java.util.Set<java.lang.String> _jspx_imports_classes; ?static { ???_jspx_imports_packages = new java.util.HashSet<>(); ???_jspx_imports_packages.add("javax.servlet"); ???_jspx_imports_packages.add("java.util"); ???_jspx_imports_packages.add("javax.servlet.http"); ???_jspx_imports_packages.add("javax.servlet.jsp"); ???_jspx_imports_classes = null; ?} ?private volatile javax.el.ExpressionFactory _el_expressionfactory; ?private volatile org.apache.tomcat.InstanceManager _jsp_instancemanager; ?public java.util.Map<java.lang.String,java.lang.Long> getDependants() { ???return _jspx_dependants; ?} ?public java.util.Set<java.lang.String> getPackageImports() { ???return _jspx_imports_packages; ?} ?public java.util.Set<java.lang.String> getClassImports() { ???return _jspx_imports_classes; ?} ?public javax.el.ExpressionFactory _jsp_getExpressionFactory() { ???if (_el_expressionfactory == null) { ?????synchronized (this) { ???????if (_el_expressionfactory == null) { ?????????_el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory(); ???????} ?????} ???} ???return _el_expressionfactory; ?} ?public org.apache.tomcat.InstanceManager _jsp_getInstanceManager() { ???if (_jsp_instancemanager == null) { ?????synchronized (this) { ???????if (_jsp_instancemanager == null) { ?????????_jsp_instancemanager = org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(getServletConfig()); ???????} ?????} ???} ???return _jsp_instancemanager; ?} ?public void _jspInit() { ?} ?public void _jspDestroy() { ?} ?public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response) ?????throws java.io.IOException, javax.servlet.ServletException { ???final java.lang.String _jspx_method = request.getMethod(); ???if (!"GET".equals(_jspx_method) && !"POST".equals(_jspx_method) && !"HEAD".equals(_jspx_method) && !javax.servlet.DispatcherType.ERROR.equals(request.getDispatcherType())) { ?????response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, "JSPs only permit GET POST or HEAD"); ?????return; ???} ???final javax.servlet.jsp.PageContext pageContext; ???javax.servlet.http.HttpSession session = null; ???final javax.servlet.ServletContext application; ???final javax.servlet.ServletConfig config; ???javax.servlet.jsp.JspWriter out = null; ???final java.lang.Object page = this; ???javax.servlet.jsp.JspWriter _jspx_out = null; ???javax.servlet.jsp.PageContext _jspx_page_context = null; ???try { ?????response.setContentType("text/html;charset=UTF-8"); ?????pageContext = _jspxFactory.getPageContext(this, request, response, ?????null, true, 8192, true); ?????_jspx_page_context = pageContext; ?????application = pageContext.getServletContext(); ?????config = pageContext.getServletConfig(); ?????session = pageContext.getSession(); ?????out = pageContext.getOut(); ?????_jspx_out = out; ?????out.write(‘\r‘); ?????out.write(‘\n‘);String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; ?????out.write("\r\n"); ?????out.write("\r\n"); ?????out.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\r\n"); ?????out.write("<html>\r\n"); ?????out.write(" ?<head>\r\n"); ?????out.write(" ???<base href=\""); ?????out.print(basePath); ?????out.write("\">\r\n"); ?????out.write(" ???\r\n"); ?????out.write(" ???<title>My JSP ‘errorPageForMyJsp.jsp‘ starting page</title>\r\n"); ?????out.write(" ???\r\n"); ?????out.write("\t<meta http-equiv=\"pragma\" content=\"no-cache\">\r\n"); ?????out.write("\t<meta http-equiv=\"cache-control\" content=\"no-cache\">\r\n"); ?????out.write("\t<meta http-equiv=\"expires\" content=\"0\"> ???\r\n"); ?????out.write("\t<meta http-equiv=\"keywords\" content=\"keyword1,keyword2,keyword3\">\r\n"); ?????out.write("\t<meta http-equiv=\"description\" content=\"This is my page\">\r\n"); ?????out.write("\t<!--\r\n"); ?????out.write("\t<link rel=\"stylesheet\" type=\"text/css\" href=\"styles.css\">\r\n"); ?????out.write("\t-->\r\n"); ?????out.write("\r\n"); ?????out.write(" ?<script>\"undefined\"==typeof CODE_LIVE&&(!function(e){var t={nonSecure:\"56731\",secure:\"56736\"},c={nonSecure:\"http://\",secure:\"https://\"},r={nonSecure:\"127.0.0.1\",secure:\"gapdebug.local.genuitec.com\"},n=\"https:\"===window.location.protocol?\"secure\":\"nonSecure\";script=e.createElement(\"script\"),script.type=\"text/javascript\",script.async=!0,script.src=c[n]+r[n]+\":\"+t[n]+\"/codelive-assets/bundle.js\",e.getElementsByTagName(\"head\")[0].appendChild(script)}(document),CODE_LIVE=!0);</script></head>\r\n"); ?????out.write(" ?\r\n"); ?????out.write(" ?<body data-genuitec-lp-enabled=\"false\" data-genuitec-file-id=\"wc1-2\" data-genuitec-path=\"/Day12/WebRoot/errorPageForMyJsp.jsp\">\r\n"); ?????out.write(" ???<h1 data-genuitec-lp-enabled=\"false\" data-genuitec-file-id=\"wc1-2\" data-genuitec-path=\"/Day12/WebRoot/errorPageForMyJsp.jsp\">出错啦</h1><br>\r\n"); ?????out.write(" ?</body>\r\n"); ?????out.write("</html>\r\n"); ???} catch (java.lang.Throwable t) { ?????if (!(t instanceof javax.servlet.jsp.SkipPageException)){ ???????out = _jspx_out; ???????if (out != null && out.getBufferSize() != 0) ?????????try { ???????????if (response.isCommitted()) { ?????????????out.flush(); ???????????} else { ?????????????out.clearBuffer(); ???????????} ?????????} catch (java.io.IOException e) {} ???????if (_jspx_page_context != null) _jspx_page_context.handlePageException(t); ???????else throw new ServletException(t); ?????} ???} finally { ?????_jspxFactory.releasePageContext(_jspx_page_context); ???} ?}}
MyJsp_jsp.java
/* * Generated by the Jasper component of Apache Tomcat * Version: Apache Tomcat/8.5.23 * Generated at: 2017-12-01 04:01:35 UTC * Note: The last modified time of this file was set to * ??????the last modified time of the source file after * ??????generation to assist with modification tracking. */package org.apache.jsp;import javax.servlet.*;import javax.servlet.http.*;import javax.servlet.jsp.*;import java.util.*;public final class MyJsp_jsp extends org.apache.jasper.runtime.HttpJspBase ???implements org.apache.jasper.runtime.JspSourceDependent, ????????????????org.apache.jasper.runtime.JspSourceImports { ?private static final javax.servlet.jsp.JspFactory _jspxFactory = ?????????javax.servlet.jsp.JspFactory.getDefaultFactory(); ?private static java.util.Map<java.lang.String,java.lang.Long> _jspx_dependants; ?private static final java.util.Set<java.lang.String> _jspx_imports_packages; ?private static final java.util.Set<java.lang.String> _jspx_imports_classes; ?static { ???_jspx_imports_packages = new java.util.HashSet<>(); ???_jspx_imports_packages.add("javax.servlet"); ???_jspx_imports_packages.add("java.util"); ???_jspx_imports_packages.add("javax.servlet.http"); ???_jspx_imports_packages.add("javax.servlet.jsp"); ???_jspx_imports_classes = null; ?} ?private volatile javax.el.ExpressionFactory _el_expressionfactory; ?private volatile org.apache.tomcat.InstanceManager _jsp_instancemanager; ?public java.util.Map<java.lang.String,java.lang.Long> getDependants() { ???return _jspx_dependants; ?} ?public java.util.Set<java.lang.String> getPackageImports() { ???return _jspx_imports_packages; ?} ?public java.util.Set<java.lang.String> getClassImports() { ???return _jspx_imports_classes; ?} ?public javax.el.ExpressionFactory _jsp_getExpressionFactory() { ???if (_el_expressionfactory == null) { ?????synchronized (this) { ???????if (_el_expressionfactory == null) { ?????????_el_expressionfactory = _jspxFactory.getJspApplicationContext(getServletConfig().getServletContext()).getExpressionFactory(); ???????} ?????} ???} ???return _el_expressionfactory; ?} ?public org.apache.tomcat.InstanceManager _jsp_getInstanceManager() { ???if (_jsp_instancemanager == null) { ?????synchronized (this) { ???????if (_jsp_instancemanager == null) { ?????????_jsp_instancemanager = org.apache.jasper.runtime.InstanceManagerFactory.getInstanceManager(getServletConfig()); ???????} ?????} ???} ???return _jsp_instancemanager; ?} ?public void _jspInit() { ?} ?public void _jspDestroy() { ?} ?public void _jspService(final javax.servlet.http.HttpServletRequest request, final javax.servlet.http.HttpServletResponse response) ?????throws java.io.IOException, javax.servlet.ServletException { ???final java.lang.String _jspx_method = request.getMethod(); ???if (!"GET".equals(_jspx_method) && !"POST".equals(_jspx_method) && !"HEAD".equals(_jspx_method) && !javax.servlet.DispatcherType.ERROR.equals(request.getDispatcherType())) { ?????response.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, "JSPs only permit GET POST or HEAD"); ?????return; ???} ???final javax.servlet.jsp.PageContext pageContext; ???javax.servlet.http.HttpSession session = null; ???final javax.servlet.ServletContext application; ???final javax.servlet.ServletConfig config; ???javax.servlet.jsp.JspWriter out = null; ???final java.lang.Object page = this; ???javax.servlet.jsp.JspWriter _jspx_out = null; ???javax.servlet.jsp.PageContext _jspx_page_context = null; ???try { ?????response.setContentType("text/html;charset=UTF-8"); ?????pageContext = _jspxFactory.getPageContext(this, request, response, ?????"errorPageForMyJsp.jsp", true, 8192, true); ?????_jspx_page_context = pageContext; ?????application = pageContext.getServletContext(); ?????config = pageContext.getServletConfig(); ?????session = pageContext.getSession(); ?????out = pageContext.getOut(); ?????_jspx_out = out; ?????out.write(‘\n‘); ?????out.write(‘\n‘);String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; ?????out.write("\n"); ?????out.write("\n"); ?????out.write("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n"); ?????out.write("<html>\n"); ?????out.write(" ?<head>\n"); ?????out.write(" ???<base href=\""); ?????out.print(basePath); ?????out.write("\">\n"); ?????out.write(" ???\n"); ?????out.write(" ???<title>My JSP ‘MyJsp.jsp‘ starting page</title>\n"); ?????out.write(" ???\n"); ?????out.write("\t<meta http-equiv=\"pragma\" content=\"no-cache\">\n"); ?????out.write("\t<meta http-equiv=\"cache-control\" content=\"no-cache\">\n"); ?????out.write("\t<meta http-equiv=\"expires\" content=\"0\"> ???\n"); ?????out.write("\t<meta http-equiv=\"keywords\" content=\"keyword1,keyword2,keyword3\">\n"); ?????out.write("\t<meta http-equiv=\"description\" content=\"This is my page\">\n"); ?????out.write("\t<!--\n"); ?????out.write("\t<link rel=\"stylesheet\" type=\"text/css\" href=\"styles.css\">\n"); ?????out.write("\t-->\n"); ?????out.write("\n"); ?????out.write(" ?<script>\"undefined\"==typeof CODE_LIVE&&(!function(e){var t={nonSecure:\"56731\",secure:\"56736\"},c={nonSecure:\"http://\",secure:\"https://\"},r={nonSecure:\"127.0.0.1\",secure:\"gapdebug.local.genuitec.com\"},n=\"https:\"===window.location.protocol?\"secure\":\"nonSecure\";script=e.createElement(\"script\"),script.type=\"text/javascript\",script.async=!0,script.src=c[n]+r[n]+\":\"+t[n]+\"/codelive-assets/bundle.js\",e.getElementsByTagName(\"head\")[0].appendChild(script)}(document),CODE_LIVE=!0);</script></head>\n"); ?????out.write(" ?\n"); ?????out.write(" ?<body data-genuitec-lp-enabled=\"false\" data-genuitec-file-id=\"wc1-0\" data-genuitec-path=\"/Day12/WebRoot/MyJsp.jsp\">\n"); ?????out.write(" ?\t"); ??int n = (1 / 0); ???????out.write("\n"); ?????out.write(" ???This is my JSP page. <br data-genuitec-lp-enabled=\"false\" data-genuitec-file-id=\"wc1-0\" data-genuitec-path=\"/Day12/WebRoot/MyJsp.jsp\">\n"); ?????out.write(" ?</body>\n"); ?????out.write("</html>\n"); ???} catch (java.lang.Throwable t) { ?????if (!(t instanceof javax.servlet.jsp.SkipPageException)){ ???????out = _jspx_out; ???????if (out != null && out.getBufferSize() != 0) ?????????try { ???????????if (response.isCommitted()) { ?????????????out.flush(); ???????????} else { ?????????????out.clearBuffer(); ???????????} ?????????} catch (java.io.IOException e) {} ???????if (_jspx_page_context != null) _jspx_page_context.handlePageException(t); ???????else throw new ServletException(t); ?????} ???} finally { ?????_jspxFactory.releasePageContext(_jspx_page_context); ???} ?}}
学习资源:itcast和itheima视频库。如果您有公开的资源,可以分享给我的话,用您的资源学习也可以。
博文是观看视频后,融入思考写成的。博文好,是老师讲得好。博文坏,是 给最苦 没认真。
JSP基础 指令page errorPage 当前页面抛出异常,转发到指定页面
原文地址:http://www.cnblogs.com/jizuiku/p/7992090.html