JavaWeb前台异常处理-阿里云开发者社区

开发者社区> 技术小阿哥> 正文

JavaWeb前台异常处理

简介:
+关注继续查看
在做Java Web程序时候,如果出错了,常常会在页面上打印出错误的堆栈内存信息,在开发阶段对调试程序很有帮助,但是在运营环境下,这样的处理很不友好,非开发人员看了都会傻眼。
 
这里给出一个简单的处理方式,使用错误页面来处理。
 
一、创建两个常见的HTML错误信息页面:
 
404.html
    <body> 
        所访问的资源不存在:对不起,所请求的资源不存在! <br> 
    </body>
 
500.html
    <body> 
        服务器内部错误:对不起,服务器忙! <br> 
    </body>
 
二、配置web.xml
<?xml version="1.0" encoding="UTF-8"?> 
<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"> 
    <servlet> 
        <description>This is the description of my J2EE component</description> 
        <display-name>This is the display name of my J2EE component</display-name> 
        <servlet-name>ErrServlet</servlet-name> 
        <servlet-class>lavasoft.errtest.ErrServlet</servlet-class> 
    </servlet> 

    <servlet-mapping> 
        <servlet-name>ErrServlet</servlet-name> 
        <url-pattern>/servlet/ErrServlet</url-pattern> 
    </servlet-mapping> 
    <welcome-file-list> 
        <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 
    <error-page> 
      <error-code>404</error-code> 
      <location>/404.html</location> 
    </error-page> 
    <error-page> 
      <error-code>500</error-code> 
      <location>/500.html</location> 
    </error-page> 
</web-app>
 
三、创建一个测试的Servlet,用来抛500错误的用的,呵呵。
 
package lavasoft.errtest; 

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 ErrServlet extends HttpServlet { 

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

    response.setContentType("text/html"); 
    throw new RuntimeException("------");    
  } 
}
 
四、测试
 
1、当访问不存在的资源时候,服务器会返回404错误状态,这样会自动转向404对应的错误页面404.html,将其发送给客户端。
 
2、当服务器处理错误时候,会返回500错误状态码,这样自动转向500对应的错误页面500.html,将其发送给客户端。
 
这样,不费多大劲,就把异常的不友好问题解决了!
当然,这仅仅是最简单的最懒惰的一种处理方式,还有一种方式值得推荐:那就是在有好提示的页面不直接显示错误堆栈信息,只有当请求查看错误详细信息时候才点击才显示出来,这个效果是通过js实现的。


本文转自 leizhimin 51CTO博客,原文链接:http://blog.51cto.com/lavasoft/280019,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Web系统下Office文档的处理
在web环境中,我们经常遇到需要对Office文档进行各种各样的处理,如:格式转化、统计、修改等各种操作,如果使用Office的客户端对象模型直接处理,一般会遇到:效率低;服务器资源负载大等一系列问题,毕竟Office对象实现时主要针对的是客户端的使用而设计的,对于批量和大负载的处理自然效率欠佳。
756 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
8271 0
JavaWeb项目的中文乱码的原因以及Servlet中处理GET请求和POST请求编码过滤器
一、乱码原因 ①传输方和接收方采用的编码不一致。传输方对参数采用的是UTF-8编码而接收方却用GBK进行解析,当然是乱码。 ②Tomcat服务器默认采用的ISO8859-1编码得到参数值。虽然①中采用了同样的编码方式,但经过tomcat一处理,也会出现乱码(GET方式)   二、解决办法 方法一 每次传输都手动设置编码(GET方式传输数据) 传输方 String name =
1259 0
Asp.Net Web API 2第七课——Web API异常处理
原文:Asp.Net Web API 2第七课——Web API异常处理 前言 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnblogs.com/aehyok/p/3446289.
784 0
9610
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载