Servlet异常处理
Servlet异常处理一、servlet抛出异常时,我们可以配置一个异常处理器(Servlet)来处理异常二、首先创建一个Servletpublic class ErrorHandler extends HttpServlet {protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws Servlet
·
Servlet异常处理
一、servlet抛出异常时,我们可以配置一个异常处理器(Servlet)来处理异常
二、首先创建一个Servlet
public class ErrorHandler extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
}
}
三、配置web.xml,首先配置ErrorHandler的信息,然后配置,确定需要捕获的类型,可以是状态码以及异常,然后设置指定重新转发的路径
<servlet>
<servlet-name>errorHandler</servlet-name>
<servlet-class>com.xxf.demo.exception.ErrorHandler</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>errorHandler</servlet-name>
<url-pattern>/ErrorHandler</url-pattern>
</servlet-mapping>
<error-page>
<error-code>404</error-code>
<location>/ErrorHandler</location>
</error-page>
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/ErrorHandler</location>
</error-page>
四、ErrorHandler的使用
//在发生异常后,会将异常信息储存进request里进行转发,所以request里会多一些信息
public class ErrorHandler extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//状态码
Integer statusCode =(Integer) req.getAttribute("javax.servlet.error.status_code");
//异常对应的Class类
Class type=(Class)req.getAttribute("javax.servlet.error.exception_type");
//
String message=(String)req.getAttribute("javax.servlet.error.message");
//
String uri=(String)req.getAttribute("javax.servlet.error.request_uri");
//异常类
Throwable exception=(Throwable)req.getAttribute("javax.servlet.error.exception");
//发出异常的servlet名字,不带包名
String name=(String)req.getAttribute("javax.servlet.error.servlet_name");
}
}
更多推荐
已为社区贡献1条内容
所有评论(0)