JSP语法——page指令
在jsp页面用page指令定义errorPage属性(只能用于本页面):
jsp代码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" errorPage="/errors/errors.jsp"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>jsp指令</title> </head> <body> This is my JSP page. <br> <% if(true){ int x = 1/0; } %> </body> </html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" isErrorPage="true"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'errors.jsp' starting page</title> </head> <body> 对不起,出错啦! 对不起,出错啦! 对不起,出错啦! 对不起,出错啦! 对不起,出错啦! 对不起,出错啦! 对不起,出错啦! 对不起,出错啦! 对不起,出错啦! </body> </html>
在web.xml配置文件中配置<error-page>元素(用于全局):
web.xml:
<error-page> <exception-type>java.lang.ArithmeticException</exception-type> <location>/errors/errors.jsp</location> </error-page> <error-page> <error-code>404</error-code> <location>/errors/404.jsp</location> </error-page> <error-page> <error-code>500</error-code> <location>/errors/500.jsp</location> </error-page>
jsp代码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" isErrorPage="true"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP '404.jsp' starting page</title> </head> <body> 对不起,您访问的资源不存在!!!!!!! 对不起,您访问的资源不存在!!!!!!! 对不起,您访问的资源不存在!!!!!!! 对不起,您访问的资源不存在!!!!!!! 对不起,您访问的资源不存在!!!!!!! 对不起,您访问的资源不存在!!!!!!! 对不起,您访问的资源不存在!!!!!!! 对不起,您访问的资源不存在!!!!!!! 对不起,您访问的资源不存在!!!!!!! 对不起,您访问的资源不存在!!!!!!! </body> </html>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" isErrorPage="true"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP '500.jsp' starting page</title> </head> <body> 对不起,服务器内部出现错误!!! 对不起,服务器内部出现错误!!! 对不起,服务器内部出现错误!!! 对不起,服务器内部出现错误!!! 对不起,服务器内部出现错误!!! 对不起,服务器内部出现错误!!! 对不起,服务器内部出现错误!!! 对不起,服务器内部出现错误!!! 对不起,服务器内部出现错误!!! 对不起,服务器内部出现错误!!! 对不起,服务器内部出现错误!!! 对不起,服务器内部出现错误!!! 对不起,服务器内部出现错误!!! </body> </html>
PS: 1.错误处理页面要大于1KB,否则可能会无效。
2.page指令的errorPage属性优先级高于web.xml文件配置的<error-page>。
3.错误处理页面最好用page指令定义isErrorPage="true"属性,这样可以得到exception隐式对象。
jsp代码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP '6.jsp' starting page</title> </head> <body> 这是中国人 </body> </html>
PS: 在eclipse环境中,对于jsp中文乱码问题,只要page指令定义pageEncoding="UTF-8"就可以了。它会自动把jsp保存为UTF-8编码,自动设置response码表为UTF-8,而且浏览器默认用UTF-8编码打开页面。