JavaWeb前臺異常處理

JavaWeb前臺異常處理
 
在作Java Web程序時候,若是出錯了,經常會在頁面上打印出錯誤的堆棧內存信息,在開發階段對調試程序頗有幫助,可是在運營環境下,這樣的處理很不友好,非開發人員看了都會傻眼。
 
這裏給出一個簡單的處理方式,使用錯誤頁面來處理。
 
1、建立兩個常見的HTML錯誤信息頁面:
 
404.html
     < body >
        所訪問的資源不存在:對不起,所請求的資源不存在! < br >
     </body>
 
500.html
     < body >
        服務器內部錯誤:對不起,服務器忙! < br >
     </body>
 
2、配置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 >
 
3、建立一個測試的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( "------");    
  }
}
 
4、測試
 
一、當訪問不存在的資源時候,服務器會返回404錯誤狀態,這樣會自動轉向404對應的錯誤頁面404.html,將其發送給客戶端。
 
二、當服務器處理錯誤時候,會返回500錯誤狀態碼,這樣自動轉向500對應的錯誤頁面500.html,將其發送給客戶端。
 
這樣,不費多大勁,就把異常的不友好問題解決了!
固然,這僅僅是最簡單的最懶惰的一種處理方式,還有一種方式值得推薦:那就是在有好提示的頁面不直接顯示錯誤堆棧信息,只有當請求查看錯誤詳細信息時候才點擊才顯示出來,這個效果是經過js實現的。
相關文章
相關標籤/搜索