Java Web前台异常处理

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

本文配套源码

时间: 2024-10-31 08:50:55

Java Web前台异常处理的相关文章

前端-java web 全局异常处理 如何配置

问题描述 java web 全局异常处理 如何配置 怎样配置java web 前端在访问该项目中根本不存在的方法的时候 跳转异常页面啊? 解决方案 java web异常处理java web 中几种异常处理Java web的几种异常处理 解决方案二: 看你使用什么技术了.要是ssh框架,直接使用struts2或者spring mvc的拦截器就行,如果是servlet,那就自己写一个拦截器. 解决方案三: 前端访问项目中不存在的方法是什么意思? 页面调用脚本方法不存在的时候浏览器是会执行异常的. 解

浅析Java Web错误/异常处理页面_java

发生服务器 500 异常,如果默认方式处理,则是将异常捕获之后跳到 Tomcat 缺省的异常页面,如下图所示. 不论哪个网站都是一样的,所以为了满足自定义的需要,Tomcat 也允许自定义样式的.也就是在 web.xml 文件中配置: <error-page> <error-code>500</error-code> <location>/error.jsp</location> </error-page> 首先说说自带的逻辑.如果某

Java Web 错误/异常处理页面(更新)

更新!!之前的代码严重过度设计!!现修正只是一张 jsp 即可. <%@page pageEncoding="UTF-8" isErrorPage="true" import="java.io.*"%> <%!/** * 收集错误信息 输出到网页 * * @param request * 请求对象 */ public static OutputStream getError(HttpServletRequest request,

java web前台中如何创建以及编辑wordppt课件

问题描述 想使用javaweb在前台实现一个创建.编辑word.ppt的功能,这个能实现呢?是使用什么控件还是是使用什么技术?请大神们帮忙指导一下,谢谢. 解决方案 解决方案二:可以去看看ntko

为什么访问java web工程名可以跳转到前台页面?

问题描述 为什么访问java web工程名可以跳转到前台页面? 为什么访问java web工程名可以跳转到前台页面? 为什么访问java web工程名可以跳转到前台页面? 为什么访问java web工程名可以跳转到前台页面? 解决方案 1.默认tomcat容器的默认页面. <welcome-file-list> <welcome-file>/index.html</welcome-file> </welcome-file-list> 这种方式适合访问静态的页

现代Java Web开发架构分析

web|架构 当主流计算机应用软件开始迁移到客户/服务器体系结构时,程序员们开始寻找方法以简化使用类似技术并且在结构也类似的工程的开发.这就为现代软件开发框架打好了基础. 随着基于万维网的应用程序服务器的发展及其相关的应用软件的膨胀,支持这些技术的开发框架也随着蓬勃发展.当前,在企业开发领域中出现了许多特别适合于Java J2EE平台的软件开发框架. 在本文中,我将集中讨论现代的Java开发框架,分析它们的特征和各自的使用优点.另外,我还想比较目前流行的生产质量框架,例如Struts,Sprin

java web有哪些优化?

问题描述 java web有哪些优化? java web开发一个项目,可以有哪些有哪些优化?由浅到深的优化是怎样的? 解决方案 算法优化,数据结构优化,缓存优化,数据库优化,并发优化,架构优化 解决方案二: 代码优化.数据库优化和前台优化比较优先, 解决方案三: 代码优化最简单的就是提高代码的重用性,不管是前端代码还是后端代码,学会把公共性的代码抽取出来,事物的控制,特别是当对数据库进行增加删除修改的时候 ,保持数据的一致性,数据库的话加索引,视图等等,SQL语句关联的时候注意尽量用高效的sql

JAVA Web员工考勤统计

问题描述 JAVA Web员工考勤统计 前台有个打卡的页面,员工输入编号之后,会根据这个Servlet判断和赋值,然后存入数据库,但是项目有个要求是显示一个员工一个月的所有的迟到,旷工次数,就统计这块不会做,想请大家帮帮忙.数据库的信息有截图,但是不知道怎么传上来... package com.gxa.servlet.action; import java.util.Date; import javax.servlet.http.HttpServlet; import javax.servlet

java web新闻管理系统-谁用java web做一个简单的新闻管理系统啊,急用!!!

问题描述 谁用java web做一个简单的新闻管理系统啊,急用!!! 增删改,分页,有前台和后台.后台就是管理员的增删改,前台就是显示新闻的标题和内容.用oracle数据库链接.有的请发在我邮箱825091682@qq.com.谢谢了 解决方案 smarty实现简单的新闻管理系统smarty实现简单新闻管理系统 解决方案二: 不用框架,仅用java web