關於web.xml 中的 welcome-file-list 的認識
例如:
<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。