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 >
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值