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实现的。

JavaWeb前台异常处理相关推荐

  1. java 翻译框架_java框架外文翻译

    [经典外文翻译]--java(译文+英文)--毕业论文设计_英语学习_外语学习_教育专区.Java Java I/O 系统 对编程语言的设计者来说,创建一套好的输入输出(I/O)...... J2EE ...

  2. JAVAWEB开发之SpringMVC详解(二)——高级开发、数据回显、参数绑定集合、图片上传、json交互、validation校验、异常处理、RESTful支持、拦截器

    知识回顾 springmvc框架 用户请求url到DispatcherServlet前端控制器,相当于中央调度器,降低系统各组件之间的耦合度. DispatcherServlet前端控制器通过Hand ...

  3. 基于javaweb+mysql的高校学生会社团管理系统(前台、后台)

    基于javaweb+mysql的高校学生会社团管理系统(前台.后台) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myeclipse/sts等均可 ...

  4. 基于Javaweb的小项目(类似于qqzone) 4 ——通用代码模块 - 过滤器、异常处理、servlet通用代码块

    1.过滤器Filter 对页面传回的内容进过滤,并设置编码,防止出现中文乱码问题 [CharacterEncodingFilter.java] package com.javaweb.qqzone.m ...

  5. 基于javaweb+mysql的电影院售票购票电影票管理系统(前台、后台)

    基于javaweb+mysql的电影院售票购票电影票管理系统(前台.后台) 运行环境 Java≥8.MySQL≥5.7 开发工具 eclipse/idea/myeclipse/sts等均可配置运行 适 ...

  6. 基于javaweb+mysql的图书借阅管理系统(前台、后台)

    基于javaweb+mysql的图书借阅管理系统(前台.后台) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myeclipse/sts等均可配置运 ...

  7. 基于javaweb+mysql的二手交易平台二手商城二手物品(前台、后台)

    基于javaweb+mysql的二手交易平台二手商城二手物品(前台.后台) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myeclipse/sts ...

  8. 基于javaweb+mysql的甜品蛋糕店(前台、后台)

    基于javaweb+mysql的甜品蛋糕店(前台.后台) 运行环境 Java≥8.MySQL≥5.7.Tomcat≥8 开发工具 eclipse/idea/myeclipse/sts等均可配置运行 适 ...

  9. 基于javaweb+mysql的+JPA旅行网站旅游管理系统(前台、后台)

    基于javaweb+mysql的+JPA旅行网站旅游管理系统(前台.后台) 运行环境 Java≥8.MySQL≥5.7 开发工具 eclipse/idea/myeclipse/sts等均可配置运行 适 ...

最新文章

  1. 解决'ping' 不是内部或外部命令,也不是可运行的程序
  2. DOS配合FastCopy实现远程增量备份
  3. 静态路由默认路由的配置
  4. 分布式防火墙技术及主要特点
  5. 雨中的蚊子为啥不会被雨滴砸死?
  6. 工具的使用——vs2013(二)
  7. C# WinForm 给某动态控件设置 IsBalloon = true的ToolTip 即 气泡状提示
  8. python如何处理inp文件_python 之文件操作
  9. Cadence下载安装
  10. java基础 day-17 设计模式(单例,工厂,代理),静态动态代理,数据库连接池(动态代理)
  11. 传感器与检测技术基础知识(4)—— 电阻式传感器
  12. 破除对 AWS Fargate 的幻觉
  13. 数据库防火墙安全技术解析与实践
  14. 疯狂脑机接口计划:马斯克的 “读心术”
  15. python并行编程 - 介绍篇
  16. FNN 网络介绍与源码浅析
  17. 一个适合初学者的Ant教程
  18. matlab有用小工具
  19. <caption>表格标题标签
  20. 结构域对比~HMMER安装及应用

热门文章

  1. (原+转)使用opencv的DFT计算卷积
  2. Notepad++ 经常使用快捷键 (MEMO)
  3. Dom4j SAXReader Constructors
  4. Android Timer编写方式深解
  5. PHP/HTML混写的四种方式
  6. RocketMQ源码解析-PullConsumer取消息(1)
  7. android byte转string_Dig101 - Go之string那些事
  8. 继承AppCompatActivity的Activity无法隐藏标题栏
  9. 微信公众平台开发模式背后的原理?
  10. mybatis使用经验