1、jsp设置错误响应页面
1.1、方式1(局部设置):使用page指令
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page errorPage="500.jsp" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<% int i = 1/0;%>
</body>
</html>
当这个页面发生错误,就会自动跳转到我们设置的错误响应页面中去(我这里使用的是500的页面,但这里无论出现什么错误都会跳到设置的这个页面中取)
,不过,这种方法设置的只能使当前页面有效,如果希望能够被所有的页面使用,那么我们就需要使用第二种方式。
1.2、方式二(全局设置):配置xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<!--404异常默认页面-->
<error-page>
<error-code>404</error-code>
<location>/404.jsp</location>
</error-page>
<!--500异常默认页面-->
<error-page>
<error-code>500</error-code>
<location>/500.jsp</location>
</error-page>
</web-app>
通过以上配置,可以作用于当前项目中所有的页面,并且是一一对应的关系(出现什么错误就跳转到对应的页面)
1.3、二者同时存在时
当我们同时使用这两种方法时,page指令的优先级大于xml中的配置
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page errorPage="404.jsp" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<% int i = 1/0;%>
</body>
</html>
如上代码中,我让除数为0,应该会抛出500异常,但我用page指令设置了出现错误就跳转到404页面,运行之后,它会优先执行page,跳转到404页面。