Servlet异常处理的问题,

原创 2007年10月09日 20:22:00

我要实现用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>

Servlet中异常处理机制

1 声明式异常处理 声明式异常处理是在web.xml文件中声明对各种异常的处理方法。这是通过元素来声明的。 元素的结构为error-page:[error-code/exception-type]...
  • D_dragon_bamboo
  • D_dragon_bamboo
  • 2016年07月15日 23:03
  • 1133

Servlet运行原理及404、500、405异常原因和解决方法总结

一、Servlet运行原理 比如,在浏览器地址栏输入          http://ip:port/web01/hello 整个通信流程如下图所示: 分步解释:        ...
  • daijin888888
  • daijin888888
  • 2016年03月30日 16:52
  • 4181

getServletContext()空指针异常的原因 和 Servlet的init方法

现在一切都很明了了,当容器(tomcat)帮忙调用init(ServletConfig config)并且给传过来一个参数config,这个方法把参数对象的引用指向类的成员变量this.config,...
  • qq_29001335
  • qq_29001335
  • 2016年05月26日 17:48
  • 1884

异常处理问题

  • 2009年04月07日 20:21
  • 580B
  • 下载

ios异常处理问题

  • 2017年05月23日 10:22
  • 80KB
  • 下载

使用异常处理语句需要注意的几个问题

  • 2011年04月30日 22:17
  • 21KB
  • 下载

servlet异常处理

Servlet 异常处理 当一个 Servlet 抛出一个异常时,Web 容器在使用了 exception-type 元素的 web.xml 中搜索与抛出异常类型相匹配的配置。 您必须...
  • qq_20617725
  • qq_20617725
  • 2016年03月09日 16:04
  • 250

Servlet的异常处理机制

一.在Servlet中,有两种服务器端异常处理机制 1.声明试异常处理(declarative exception handling) 2.程序试异常处理(programmatic exc...
  • HEXINLI
  • HEXINLI
  • 2015年09月07日 21:48
  • 476

Servlet异常处理

Servlet 异常处理 当一个 Servlet 抛出一个异常时,Web 容器在使用了 exception-type 元素的 web.xml 中搜索与抛出异常类型相匹配的配置。 您必须...
  • super_ozman
  • super_ozman
  • 2015年12月26日 15:48
  • 232

JSP技术-page,include指令,一个servlet不能既有字节流又有字符流,异常处理

1、JSP JSP全称是Java Server Pages,它和servle技术一样,都是SUN公司定义的一种用于开发动态web资源的技术。 JSP这门技术的最大的特点在于,写jsp就像在写html...
  • danny1991
  • danny1991
  • 2015年12月08日 09:06
  • 864
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Servlet异常处理的问题,
举报原因:
原因补充:

(最多只允许输入30个字)