1
引言:
在java web項目中,有時我們需要在錯誤發生時,給出用戶提示信息,或者顯示站點維護者信息,再或者將錯誤替換為另一種表達以舒緩情緒。這時可以采用web.xml的error-page標簽來實現。由於相關資料較多,此篇只為簡單指引。
需要強調的是,error-page只要是一個java web項目便會支持,而不需要考慮框架插件等的引入。
正文:
一、按錯誤號指定跳轉。
1)創建錯誤處理頁。
創建“/WEB-INF/404.html”(或者“/404.html”)。打開“404.html”,添加維護者聯系方式。
2)添加error-page標簽。
向“web-app”添加“error-page”子結點,內容如下:
- <error-page>
- <error-code>404</error-code>
- <location>/WEB-INF/404.html</location>
- </error-page>
3)部署測試。
隨手輸入一個不存在的url地址。可以看到404.html被正確顯示。
注:
將404.html放在WebRoot/下或者WebRoot/WEB-INF/下均可。
二、按異常類型指定跳轉。
1)創建異常處理頁(以空指針異常為例)。
A)創建servlet“Hello”在默認包“src/”目錄下。
B)修改doGet(,)直接調用this.doPost(,)。
C)在doPost(,)中插入注釋間的2行代碼。如下所示
- out.println(", using the POST method");
- // test snippet
- Object obj = null;
- out.println(obj.toString());
- // <-test
- out.println(" </BODY>");
手工制作一個NullPointerException。
D)創建“nullPointerException.html”,並在內容中寫入“nullPointerException”。
2)添加error-page標簽。
A)添加servlet配置如下:
- <servlet>
- <servlet-name>Hello</servlet-name>
- <servlet-class>Hello</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>Hello</servlet-name>
- <url-pattern>/servlet/Hello</url-pattern>
- </servlet-mapping>
B)添加error-page:
- <error-page>
- <exception-type>java.lang.NullPointerException</exception-type>
- <location>/WEB-INF/nullPointerException.html</location>
- </error-page>
3)部署測試。
重部署后,訪問“http://localhost:8080/myJavaWeb/servlet/Hello”。便可看到“nullPointerException.html”頁的內容。
(完結)