Servlet/JSP 容器開發手記2 (轉)

themoney發表於2007-10-03
Servlet/JSP 容器開發手記2 (轉)[@more@]

welcome-file-list 的處理

按照 規範,歡迎是不以 / 開頭的部分 URI, 但我不清楚是它除了可以是一個檔案,是否還可以是以對映到一個Servlet處理的 URL,比如

1. 如果歡迎檔案指的 index.html, index.htm, index.,那就要尋找檔案是否存在該檔案,如不存在,則將 404(NOT FOUND) 錯誤程式碼返回給客戶端,否則處理該檔案

2. 如果歡迎檔案提的 index.do, 而所有 *.do 的處理都被對映到 ActionServlet 處理,此時容器是否接受這樣的請求呢?

透過對4.1測試發現

如果是第二種情況,容器返回 404 錯誤, 即使 index.do 被正確對映也能被相應的 Servlet 正確處理。如果將在相應的目錄中放在一個 index.do 檔案,此時 index.do 被正確處理了。

所以Tomcat的處理方式應該是

1. 測試 index.do 檔案是否存在,如果不存在, 則再找下一個歡迎檔案。
2. 如果存在,再返回重定向資訊(包含了歡迎檔案的完整的URL) 給客戶端

注意: 必須採用重定向的方式,不能直接交給 Servlet 處理,如果直接交給 Servlet 處理, 雖然可以將正確的資訊返回給,但如果 HTML 程式碼中包含了相對路徑URL引用,則會被瀏覽錯誤解釋,所以必須告訴瀏覽器正確URL,重定向是一種的方式


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10794571/viewspace-974657/,如需轉載,請註明出處,否則將追究法律責任。

相關文章