最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

JSP頁面pageEncoding和contentType屬性

 更新時間:2013年04月07日 11:10:03   作者:  
有關(guān)于JSP頁面中pageEncoding和contentType屬性。

JSP要經(jīng)過兩次的“編碼”,第一階段會用pageEncoding,第二階段會用utf-8至utf-8,第三階段就是由Tomcat出來的網(wǎng)頁, 用的是contentType。


關(guān)于JSP頁面中的pageEncoding和contentType兩種屬性的區(qū)別:


pageEncoding是jsp文件本身的編碼


contentType的charset是指服務(wù)器發(fā)送給客戶端時的內(nèi)容編碼


JSP要經(jīng)過兩次的“編碼”,第一階段會用pageEncoding,第二階段會用utf-8至utf-8,第三階段就是由Tomcat出來的網(wǎng)頁,用的是contentType。


第一階段是jsp編譯成.java,它會根據(jù)pageEncoding的設(shè)定讀取jsp,結(jié)果是由指定的編碼方案翻譯成統(tǒng)一的UTF-8 JAVA源碼(即.java),如果pageEncoding設(shè)定錯了,或沒有設(shè)定,出來的就是中文亂碼。


第二階段是由JAVAC的JAVA源碼至java byteCode的編譯,不論JSP編寫時候用的是什么編碼方案,經(jīng)過這個階段的結(jié)果全部是UTF-8的encoding的java源碼。


JAVAC用UTF-8的encoding讀取java源碼,編譯成UTF-8 encoding的二進(jìn)制碼(即.class),這是JVM對常數(shù)字串在二進(jìn)制碼(java encoding)內(nèi)表達(dá)的規(guī)范。


第三階段是Tomcat(或其的application container)載入和執(zhí)行階段二的來的JAVA二進(jìn)制碼,輸出的結(jié)果,也就是在客戶端見到的,這時隱藏在階段一和階段二的參數(shù)contentType就發(fā)揮了功效


contentType的設(shè)定.


pageEncoding 和contentType的預(yù)設(shè)都是 ISO8859-1. 而隨便設(shè)定了其中一個, 另一個就跟著一樣了(TOMCAT4.1.27是如此). 但這不是絕對的, 這要看各自JSPC的處理方式. 而pageEncoding不等于contentType, 更有利亞洲區(qū)的文字 CJKV系JSP網(wǎng)頁的開發(fā)和展示, (例pageEncoding=GB2312 不等于 contentType=utf-8)。


jsp文件不像.java,.java在被編譯器讀入的時候默認(rèn)采用的是操作系統(tǒng)所設(shè)定的locale所對應(yīng)的編碼。一般我們不管是在記事本還是在ue中寫代碼,如果沒有經(jīng)過特別轉(zhuǎn)碼的話,寫出來的都是本地編碼格式的內(nèi)容。所以編譯器采用的方法剛好可以讓虛擬機(jī)得到正確的資料。


但是jsp文件不是這樣,它沒有這個默認(rèn)轉(zhuǎn)碼過程,但是指定了pageEncoding就可以實現(xiàn)正確轉(zhuǎn)碼了。


舉個例子:


<%@ page contentType="text/html;charset=utf-8" %>
大都會打印出亂碼,因為我輸入的“你好嗎”是gbk的,但是服務(wù)器是否正確抓到“你好嗎”不得而知。

更改為一下內(nèi)容即可

<%@ page contentType="text/html;charset=utf-8" pageEncoding="GBK"%>

 

相關(guān)文章

  • Spring通過工具類實現(xiàn)獲取容器中的Bean

    Spring通過工具類實現(xiàn)獲取容器中的Bean

    在實際開發(fā)中,我們往往要用到Spring容器為我們提供的諸多資源,例如想要獲取到容器中的配置、獲取到容器中的Bean等等。本文為大家詳細(xì)講講工具類如何獲取到Spring容器中的Bean,需要的可以參考一下
    2022-06-06
  • java排序高級之選擇排序?qū)崿F(xiàn)方法

    java排序高級之選擇排序?qū)崿F(xiàn)方法

    這篇文章主要介紹了java排序高級之選擇排序?qū)崿F(xiàn)方法,較為全面的分析了選擇排序的原理與具體實現(xiàn)技巧,非常具有實用價值,需要的朋友可以參考下
    2015-02-02
  • SpringBoot集成POI導(dǎo)出Execl表格之統(tǒng)一工具類

    SpringBoot集成POI導(dǎo)出Execl表格之統(tǒng)一工具類

    這篇文章主要為大家詳細(xì)介紹了SpringBoot集成POI導(dǎo)出Execl表格之統(tǒng)一工具類,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • java報錯之springboot3+vue2項目web服務(wù)層報錯總結(jié)

    java報錯之springboot3+vue2項目web服務(wù)層報錯總結(jié)

    java入門學(xué)習(xí),隨手記錄一下開發(fā)過程中產(chǎn)生的報錯,有些錯誤是網(wǎng)上搜索再加上自己嘗試,隨手引用了一些其他人的記錄,也是留給自己看的,或是希望能對其他初學(xué)者有幫助

    2023-06-06
  • Java+Selenium調(diào)用JavaScript的方法詳解

    Java+Selenium調(diào)用JavaScript的方法詳解

    這篇文章主要為大家講解了java在利用Selenium操作瀏覽器網(wǎng)站時候,有時會需要用的JavaScript的地方,代碼該如何實現(xiàn)呢?快跟隨小編一起學(xué)習(xí)一下吧
    2023-01-01
  • Jenkins 編譯后使用SSH發(fā)布詳解

    Jenkins 編譯后使用SSH發(fā)布詳解

    這篇文章主要介紹了Jenkins 編譯后使用SSH發(fā)布詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • Java并發(fā)CopyOnWrite容器原理解析

    Java并發(fā)CopyOnWrite容器原理解析

    這篇文章主要介紹了Java并發(fā)CopyOnWrite容器原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01
  • Spring Boot開啟的2種方式詳解

    Spring Boot開啟的2種方式詳解

    這篇文章主要介紹了Spring Boot開啟的2種方式詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-05-05
  • 使用springBoot中的info等級通過druid打印sql

    使用springBoot中的info等級通過druid打印sql

    這篇文章主要介紹了使用springBoot中的info等級通過druid打印sql,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 啟動異常invalid constant type:15的解決方案

    啟動異常invalid constant type:15的解決方案

    今天小編就為大家分享一篇關(guān)于啟動異常invalid constant type:15的解決方案,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12

最新評論

三明市| 奉节县| 大庆市| 黑山县| 罗田县| 白银市| 昌图县| 府谷县| 共和县| 定兴县| 霍林郭勒市| 会宁县| 清远市| 巴塘县| 广德县| 达尔| 亚东县| 凤冈县| 珠海市| 望江县| 寻乌县| 海淀区| 镇沅| 博白县| 福清市| 琼中| 宣恩县| 奇台县| 祁阳县| 个旧市| 鹤岗市| 三江| 阜城县| 新安县| 安康市| 娱乐| 天镇县| 沁水县| 晋城| 隆尧县| 五河县|