Servlet异常处理

来源:互联网 发布:初学者编程 编辑:程序博客网 时间:2024/06/06 11:47

在Servlet中,有两种服务器端异常处理机制:声明式异常处理和程序式异常处理。

一、声明式异常处理
声明式异常处理是在web.xml文件中声明对各种异常的处理方法。
这里写图片描述
<\error-code>元素指定HTTP的错误代码,其中4xx状态代码表示客户端错误,5xx表示服务器端错误。
<\exeception-type>元素指定Java异常类的完整限定名。
<\location>元素给出用于响应HTTP错误代码或者Java异常的资源的路径。该路径是相对于web应用程序根路径的位置,必须加斜杠(/)开头。

<error-page>    <error-code>404</error-code>    <location>/FileNotFind.jsp</location> </error-page>

也可以编写一个专门处理HTTP错误的servlet类进行响应:

public class HttpErrorHandleServlet extends HttpServlet {    //不需要针对不同的HTTP方法做不同的处理,直接重写service()方法    @Override    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {        resp.setContentType("text/html;charset=utf-8");        PrintWriter out=resp.getWriter();        //获取状态代码        Integer stateCode=(Integer)req.getAttribute("javax.servlet.error.status_code");        out.println("<html><head><title>错误页面</title></head><body>");        switch (stateCode){            case 401:break;            case 404:                out.print("<h2>你所访问的页面不存在</h2>");                break;            default:break;        }        out.println("</body></html>");        out.close();    }}

配置web.xml文件

<servlet>    <servlet-name>HttpErrorHandleServlet</servlet-name>    <servlet-class>org.wdz.exeption.servlet.HttpErrorHandleServlet</servlet-class>  </servlet>  <servlet-mapping>    <servlet-name>HttpErrorHandleServlet</servlet-name>    <url-pattern>/HttpErrorHandleServlet</url-pattern>  </servlet-mapping>  <error-page>    <error-code>401</error-code>    <location>/HttpErrorHandleServlet</location>  </error-page>

2、java异常的处理
对程序中产生的java异常进行处理,

  <error-page>  <!--异常的完整类名-->    <exception-type>java.io.FileNotFoundException</exception-type>    <location>/FileNotFind.jsp</location>  </error-page>

二、程序式异常处理
程序式异常处理就是在Web应用程序中利用try-catch语句来捕获异常,并对异常进行处理。

原创粉丝点击