程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java Web前台異常處理

Java Web前台異常處理

編輯:關於JAVA

在做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實現的。

本文配套源碼

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved