<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      servlet規范要求:request的缺省編碼必須是iso-8859-1

      [摘要]看到很多文章在問和答關于java網頁漢字亂碼的情況,有些甚至認為這是servlet包容器實現上的錯誤?墒侨绻x過servlet規格說明書,關于java網頁編碼的問題就應該迎刃而解了。編寫java網頁(servlet\jsp),需要關心response(反饋給客戶端的頁面)和request(來自客...
      看到很多文章在問和答關于java網頁漢字亂碼的情況,有些甚至認為這是servlet包容器實現上的錯誤。
      可是如果讀過servlet規格說明書,關于java網頁編碼的問題就應該迎刃而解了。

      編寫java網頁(servlet\jsp),需要關心response(反饋給客戶端的頁面)和request(來自客戶端的數據)的編碼問題。

      response的編碼可以直接用代碼實現。而request的編碼怎么辦呢?
      以下是servlet規范書上的文字(我粗略翻譯一下吧,不怕見笑):

      -- 整理自<Java Servlet Specification Version 2.3> SRV.4.9 --

      當前,很多瀏覽器并不發送帶有“Content-Type”頭信息的字符編碼限定符,而由讀取HTTP請求的代碼來決定字符的編碼方式。如果客戶端請求未定義編碼限定符,則包容器(如tomcat)用于創建request reader和分析POST數據的request的缺省編碼方式必須是“ISO-8859-1”。然而,為了向開發者指明客戶端沒有發送字符編碼信息的情況,包容器對getCharacterEncoding方法返回null。

      如果客戶端不設置字符編碼方式,并且request不是按照以上缺省編碼方式(iso-8859-1)來編碼,則會發生問題。為了解決這個問題,在接口ServletRequest中加入了一個新的方法setCharacterEncoding(String enc)。開發者可以調用這個方法來替換包容器提供的缺省字符編碼方式。但是,必須在從request中分析任何POST數據或者讀取任何輸入之前,調用這個方法。一旦數據已被讀取,則調用這個方法將不會影響編碼方式。


      日韩精品一区二区三区高清