程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> Servlet 2.5版本終止響應

Servlet 2.5版本終止響應

編輯:關於JSP

第一處優化細小又深奧,但做為規范中的一個例子還有蠻有趣的。Servlet 2.4規范規定響應在這幾種情況下應該是有效的,包括:在響應的setContentLength方法中內容已經明確說明,以及內容已經寫進了響應中。這種情況只有你的代碼像下面這樣才可以使響應重新定向:
◆response.setHeader("Host", "localhost");
◆response.setHeader("Pragma", "no-cache");
◆response.setHeader("Content-Length", "0");
◆response.setHeader("Location", http://www.apache.org");

Servlet技術忽略特定區域的標題頭,因為內容滿足0字節長度,響應就會立即生效。而在它開始之前,響應就已失效了!Servlet容器通常拒絕執行這種行為,而Servlet 2.5版本增加了“長度必須大於0”這個原則。
實例編碼:

Servlet 2.4 規范規定必須在調用request.getReader()方法之前調用request.setCharacterEncoding()方法。但是,如果你忽略這個原則而在其之後去調用request.setCharacterEncoding()方法,那麼會產生什麼後果,這個問題規范裡並沒有說。為了簡便,現在消除這種情況!

Cross-context sessions(不同上下文目錄間的會話):
最近,關於Cross-context會話處理的規則已經明確說明。當Servlets指派從一個上下文到其他上下文的請求時,這個規則就發揮了作用??在目標調用過程中,包括哪些會話。這個版本的出現使得一個上下文目錄的主頁裡的portlets可以通過幾種內部的命令來對別的上下文目錄裡的portlets起作用。

Servlet 2.5版本明確指出一個上下文目錄裡的資源可以訪問其他上下文目錄的session(會話),而不用考慮這個請求從哪裡開始的。這意味著portlets可以脫離主頁的范圍而在自己的范圍裡運行,而且這個規范還會應用在不兼容的Serlvet容器中。期待:

由於Servlet 2.5版本要保持一些舊的性質,幾個大的概念不得不延後到下一個階段。它們包括:
◆新的輸入/輸出(NIO)支持:使NIO通道更有利於Servlets進行客戶端通信成為可能。
◆過濾器wrap-under或wrap-over語義:有時用過濾器包裝請求,和/或者響應對象去修改方法行為或者啟用新的方法。當把這種包裝和服務器對請求和響應的包裝結合起來時,又應該怎麼包裝在一起?
◆用於歡迎的Servlets文件:做為索引應該充當歡迎作用的文件嗎?在此之前,這個回答是肯定的。但是規范沒有明確說明如何使用這個功能,尤其在沒有索引的情況下。
◆用於歡迎的文件的分派規則:如何分派歡迎文件,這個細節並沒有完全說明,而是遺留了一些開放的缺口來應對不兼容問題。
◆登陸後選擇默認頁面:如果用戶通過他們的書簽訪問Servlet的登陸頁面,那麼在成功登陸後頁面應該轉向哪裡呢?這個問題至今尚未明確說明。
◆用戶的主題日志:在通過網站正確地注冊之後,不通過傳統地登陸方式沒有辦法使Servlet信任用戶。

  1. Servlet中的doFilter方法
  2. 配置Servlet過濾器
  3. 安裝Servlet和JSP開發工具
  4. Java Servlet入門教程
  5. Servlet過濾器是什麼

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved