欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JSP创建错误处理页面

程序员文章站 2022-03-29 23:41:18
...
   程序运行难免会发生异常或者错误。当处理JSP页面时,遇到的异常分为两个基本类型:
    1. 编译时的错误
     2. 运行时的错误。
   如果在编译时出现错误,那么将会产生那边错误(错误代码500)。如果错误在JSP编译完成后发生,那么就是运行时错误。如果我们不对错误进行处理,根据服务器的不同,就会显示出不友好的出错页面。同时也暴露了一些信息。
  在JSP程序中可以捕获产生的异常,并且在代码中进行异常处理,比如:
 <%
    try{
          int i=Integer.parseInt(request.getParameter("age"))
       }
    catch(NumberFormatException e)
       {
         response.sendRedirect("reenter.jsp");
        }
  %>

在上面的代码中,JSP已经捕获到了异常。但是如果异常在客户端请求时出现并且根本没有捕获到这个异常,那么用户还是会出现不友好的出错界面。这样噩梦需要建立一些异常页面。建立异常页面时,可以在编程中指定JSP出错的页面,也可以再web.xml文件中描述错误代码和出错页面。

在JSP中声明出错页面
   由于JSP文件被编译成Servlet执行,出现异常的默认操作就是显示异常从堆栈。JSP页面提供了重写这个默认行为的功能。并且将异常处理转到另一个文件中:
<%@ page errorPage="error.jsp"%>
这样在这个JSP页面中,如果遇到任何为捕获到的Throwable对象,那么就会显示指定的出错页面。
  建立错误代码和错误页面
  以上是在编程中指定错误页面,有一些异常不是由JSP页面抛出,而是由应用服务器抛出的,比如访问的页面不存在,应用服务器将会抛出页面不存在的异常(错误代码404)
这样的页面同样也是不友好的,我们可以在web.xml文件中对异常进行声明。比如出现错误代码为404,就调用pageNotFound.html页面,出现错误代码为500的异常,就调用internalError.jsp页面。
可以在web.xml文件中进行声明如下:
  <?xml version="1.0" encoding="iso-8859-1"?>
  <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-app_2_4.xsd" version="2.4">
   <error-page>
      <error-code>404</error-code>
      <location>/pageNotFound.html</location>
   </error-page>
   <error-page>
     <error-code>505</error-code>
     <location>/internalError.html</location>
   </error-page>
   <error-page>
      <exception-type>java.lang.NumberFormatException</exception-type>
      <location>/NumberFormatException.html</location>
   </error-page>

可以看出,在声明错误页面时,可以指定错误的代码。

国际化问题
    一个真正意义的全球资源,其Web浏览器的内容对每个接收到的用户来说都是易读的。现在大多数全球资源的网站都是英文的。当然,现在也在发生变化,有的网站为一些特定的国家定制非英文版本。比如简单的google.com和google.cn吧。

国际化的问题主要包含以下的内容:
   1. 日期、时间
   2. 数字
   3. 货币
   4. 其他一些特殊的字符
也就是说,不同的Locale,显示日期、时间格式是不一样的。当然,不同的语言有自己不同的字符集。