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语句来捕获异常,并对异常进行处理。
阅读全文
0 0
- 处理servlet异常
- Servlet异常处理
- Servlet之异常处理
- Servlet异常处理
- Servlet异常处理
- Servlet异常处理
- servlet异常处理
- Servlet异常处理
- servlet异常处理
- Servlet异常处理
- Servlet 异常处理
- servlet_13 Servlet异常处理
- Servlet异常处理
- servlet异常如何处理
- servlet异常如何处理
- servlet异常处理代码
- Servlet异常处理
- Servlet异常处理的问题,
- 智能指针探索(一)——成员变量的释放
- firefox历年版本的官方镜像地址 和 所有的geckodriver.exe驱动大全
- 23种设计模式
- python unittest用法
- HDOJ 1007 Quoit Design (最近点对+分治)
- Servlet异常处理
- java多线程开发基础
- thinkphp对数据库的删改查
- Spark RDD API详解
- |BZOJ 1656|BFS|[Usaco2006 Jan] The Grove 树木
- ValueAnimator属性动画学习笔记
- Tomcat Server.xml部分配置说明
- 小的杂货店
- MyEclipse快捷键大全