1. 程式人生 > >關於web.xml 中的 welcome-file-list 的認識

關於web.xml 中的 welcome-file-list 的認識

welcome-file-list是一個配置在web.xml中的一個歡迎頁,用於當用戶在url中輸入工程名稱或者輸入web容器url(如http://localhost:8080/)時直接跳轉的頁面.

例如:

<welcome-file-list>
        <welcome-file>index.html</welcome-file>

        <welcome-file>index.jsp</welcome-file>

        <welcome-file>index.action</welcome-file>

</welcome-file-list>

     今天我遇到了一個問題,就是直接輸入localhost:8080/不是跳轉到index.html,而是報404找不到的錯誤,根據錯誤資訊看明顯是沒有跳轉到index.html,意思就是說welcome-file-list根本就木有起作用。

解決問題一定要從原理入手,所以要先分析welcome-file-list是怎麼工作的。

     welcome-file-list的工作原理是,按照welcome-file的.list一個一個去檢查是否web目錄下面存在這個檔案,如果存在,繼續下面的工作(或者跳轉到index.html頁面,或者配置有struts的,會直接struts的過濾工作).如上例,先去webcontent(這裡是Eclipse的工程目錄根目錄)下是否真的存在index.html這個檔案,如果不存在去找是否存在index.jsp這個檔案,以此類推。

      還要說的是welcome-file不一定是html或者jsp等檔案,也可以是直接訪問一個action。就像我上面配置的一樣,但要注意的是,一定要在webcontent下面建立一個index.action的空檔案,然後使用struts配置去跳轉,不然web找不到index.action這個檔案,會報404錯誤,原因就是我之前說的那樣。

     希望上述文章對大家有幫助,如果還有其他的可能使得歡迎頁不起作用,歡迎大家給我留言。

      如果配置了servlet的url-pattern是/*(比如/XXX.jsp,則會匹配到該jsp上),那麼訪問localhost:8080/會匹配到該servlet上,而不是匹配welcome-file-list;如果url-pattern是/(該servlet即為預設servlet),如果其他匹配模式都沒有匹配到,則會匹配welcome-file-list。