關於Java Web工程中web.xml檔案

不動聲色的蝸牛發表於2014-06-06

        提及Java Web工程中web.xml檔案無人不知,無人不識,呵呵呵:系統首頁、servlet、filter、listener和設定session過期時限,張口就來,可是你見過該檔案中的error-page標籤嗎?下面直接以例子的形式說明error-page標籤的使用:

        一個servlet檔案:  

        package com.ghj.packageofservlet;

        import java.io.IOException;
        import javax.servlet.ServletException;
        import javax.servlet.http.HttpServlet;
        import javax.servlet.http.HttpServletRequest;
        import javax.servlet.http.HttpServletResponse;

        /**
         * 故意發生異常
         * 
         * @author GaoHuanjie
         */
        public class ExceptionServlet extends HttpServlet {
                private static final long serialVersionUID = -8602055287059392677L;
                public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
                        doPost(request, response);
                }
                public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
                        Object object = null;
                        System.out.println(object.toString());
                }
        }

        一個web.xml檔案:

        <?xml version="1.0" encoding="UTF-8"?>
        <web-app version="2.5" 
                xmlns="http://java.sun.com/xml/ns/javaee" 
                xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
                xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
                http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
                <error-page>
                        <error-code>404</error-code>
                        <location>/404.jsp</location>
                </error-page>
                <error-page>
                        <exception-type>java.lang.NullPointerException</exception-type>
                        <location>/exception.jsp</location>
                </error-page>
                <servlet>
                        <servlet-name>ExceptionServlet</servlet-name>
                        <servlet-class>com.ghj.packageofservlet.ExceptionServlet</servlet-class>
                </servlet>
                <servlet-mapping>
                        <servlet-name>ExceptionServlet</servlet-name>
                        <url-pattern>/ExceptionServlet</url-pattern>
                </servlet-mapping>

        </web-app>

        一個404頁面:

        <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" isErrorPage="true"%>
        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
        <html>
                <head>
                <title>404頁面</title>
                <style type="text/css">
                        a:link {
                                color: #555555;
                                text-decoration: none
                        }
                        a:visited {
                                color: #555555;
                                text-decoration: none
                        }
                        a:active {
                                color: #555555;
                                text-decoration: none
                        }
                        a:hover {
                                color: #6f9822;
                                text-decoration: none
                        }
                        .text {
                                font-size: 12px;
                                color: #555555;
                                font-family: "";
                                text-decoration: none
                        }
                </style>
                </head>
                <body>
                        <table height="100%" cellSpacing="0" cellPadding="0" width="100%" align="center" border="0">
                                <tbody>
                                        <tr>
                                                <td valign="middle" align="center">
                                                        <table cellSpacing="0" cellPadding="0" width="500" align="center" border="0">
                                                                <tr>
                                                                        <td width="17" height="17"><img height="17" src="images/co_01.gif" width="17"></td>
                                                                        <td width="316" background="images/bg01.gif"></td>
                                                                        <td width="17" height="17"><img height="17" src="images/co_02.gif" width="17"></td>
                                                                </tr>
                                                                <tr>
                                                                        <td background="images/bg02.gif"></td>
                                                                        <td>
                                                                                <table class="text" cellSpacing="0" cellPadding="10" width="100%" align="center" border="0">
                                                                                        <tr>
                                                                                                <td>
                                                                                                        <table cellSpacing="0" cellPadding="0" width="100%" border="0">
                                                                                                                <tr>
                                                                                                                        <td><img height="66" src="images/404error.gif" width="400"></td>
                                                                                                                </tr>
                                                                                                        </table>
                                                                                                </td>
                                                                                        </tr>
                                                                                        <tr>
                                                                                                <td>
                                                                                                        <table class="text" cellSpacing="0" cellPadding="0" width="100%" border="0">
                                                                                                                <tr>
                                                                                                                        <td>
                                                                                                                                <p>
                                                                                                                                        <strong><font color="#ba1c1c">HTTP404錯誤:</font></strong>
                                                                                                                                        沒有找到您要訪問的頁面,請與管理員聯絡。
                                                                                                                               </p>
                                                                                                                               <div align="right">管理員QQ:845129726&nbsp;</div>
                                                                                                                        </td>
                                                                                                                </tr>
                                                                                                        </table>
                                                                                                </td>
                                                                                        </tr>
                                                                                </table>
                                                                        </td>
                                                                        <td background="images/bg03.gif"></td>
                                                                </tr>
                                                                <tr>
                                                                        <td width="17" height="17"><img height="17" src="images/co_03.gif" width="17"></td>
                                                                       <td background="images/bg04.gif" height="17"></td>
                                                                        <td width="17" height="17"><img height="17" src="images/co_04.gif" width="17"></td>
                                                                </tr>
                                                        </table>
                                                </td>
                                        </tr>
                                </tbody>
                        </table>
                </body>
        </html>

        一個處理異常頁面:

        <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"  isErrorPage="true"%>
        <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
        <html>
                <head>
                        <title>異常頁面</title>
                </head>
                <body>
                        <table cellSpacing="0" width="600" align="center" border="0" cellpadding="0" style="margin-top: 18%">
                                <tbody>
                                        <tr>
                                                <td valign="top" align="center"><img height="100" src="images\exception.png" width="100" border="0"></td>
                                                <td>
                                                        <font style="font-size: 10pt;color: #842b00;">HTTP錯誤 505:系統出現異常,暫停服務。</font>
                                                </td>
                                        </tr>
                                </tbody>
                        </table>
                </body>
        </html>

        工程說明:

        本工程用於演示web.xml檔案中error-page標籤的使用
        本工程編碼方式:UTF-8
        演示說明:
                 ①、http://localhost:8080/test/index.jsp ——>演示404頁面
                 ②、http://localhost:8080/test/ExceptionServlet ——>演示異常頁面

                 ③、注意上面紅底處的程式碼

                 ④、如果把上面兩個頁面(一個404頁面和一個處理異常頁面)的程式碼很簡潔(比如body標籤中就一句30或40個字元的話),在IE瀏覽器中進行上面訪問,你會發現頁面顯示的是IE瀏覽器自身的“報錯”頁面,怎樣使用自己的網頁呢,最好的辦法是在含有紅底處程式碼的前提下增加頁面的大小!

        【下載原始碼

相關文章