歡迎您光臨本站 註冊首頁

JavaWeb前台異常處理

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0
在做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前台異常處理已經有459次圍觀

http://coctec.com/docs/java/show-post-60474.html