Servlet异常处理的问题,

我要实现用Servlet来处理错误信息,返回友好的错误提示页面

同样的代码,在我的机器上就不好使,报404错误,而到别人的机器上就正确显示,很是郁闷,以下是代码段

package ccsos;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class HttpErrorHandlerServlet extends HttpServlet {

    
private static final long serialVersionUID = 1L;

    
public void service(HttpServletRequest request, HttpServletResponse response)
            
throws ServletException, IOException {

        response.setContentType(
"text/html;charset=gb2312");
        PrintWriter out 
= response.getWriter();
        out.println(
"<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">");
        Integer status_code
=(Integer)request.getAttribute("javax.servlet.error.status_code");
        out.println(
"<HTML>");
        out.println(
"  <HEAD><TITLE>错误页面</TITLE></HEAD>");
        out.println(
"  <BODY>");
        
switch(status_code){
        
case 401:
            out.println(
"<h2>HTTP状态代码: "+status_code+"</h2>");
            out.println(
"您无权访问该页面.");
            out.println(
"<p>如有其它问题,请<a href=mailto:zsgzs.com@gmail.com>联系管理员</a>");
            
break;
        
case 404:
            out.println(
"<h2>HTTP状态代码: "+status_code+"</h2>");
            out.println(
"您所访问的页面并不存在,或者已经被移动到其他位置.<p>");
            out.println(
"如有其它问题,请<a href=mailto:zsgzs.com@gmail.com>联系管理员</a>");
            
break;
        
default:
            
break;
        }

        out.println(
"  </BODY>");
        out.println(
"</HTML>");
        out.flush();
        out.close();
    }

}

我的环境是:JDK1.6.01+MyEclipse6.0.0M1+Tomcat6.0, 输入一个不存在的地址:显示

之后我换了环境也不好使JDK1.5.06+MyEclipse5.0+Tomcat5.0.28

但在我朋友的机器上,用JDK1.5.06+MyEclipse5.0+Tomcat5.0.28环境成功了,以下是截图:

以下是web.xml配置:

 

<?xml version="1.0" encoding="GB18030"?>
<web-app version="2.4" 
    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 
    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
>
     
<error-page>
         
<error-code>401</error-code>
         
<location>/HttpErrorHandlerServlet</location>
     
</error-page>     
     
<error-page>
         
<error-code>404</error-code>
         
<location>/HttpErrorHandlerServlet</location>
     
</error-page>
  
<servlet>
    
<servlet-name>HttpErrorHandlerServlet</servlet-name>
    
<servlet-class>ccsos.HttpErrorHandlerServlet</servlet-class>
  
</servlet>
    
<servlet-mapping>
    
<servlet-name>HttpErrorHandlerServlet</servlet-name>
    
<url-pattern>/HttpErrorHandlerServlet</url-pattern>
  
</servlet-mapping>
  
<welcome-file-list>
    
<welcome-file>login.html</welcome-file>
  
</welcome-file-list>
</web-app>
阅读更多
下一篇JDOM创建XML文档实例
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭