我要啦免费统计

          微藍(lán)領(lǐng)域

          我的學(xué)習(xí)檔案館
          posts - 19, comments - 57, trackbacks - 0, articles - 57
            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

          jsp中的include亂碼問題

          Posted on 2007-12-07 11:23 hilor 閱讀(7835) 評論(0)  編輯  收藏 所屬分類: J2EE
          解決方法:
          1. 問題描述:<%@ include file="*.html" %> 的中文亂碼問題

          要解決這個問題,當(dāng)然最簡單的就是在每個被 include 的文件第一行,加上

          <%@ page contentType="text/html;charset=gb2312" %>
          這樣一定可以確保中文 jsp 檔不會出現(xiàn)亂碼,只不過,一旦程序修改成這樣的模式,這種程序就無法在舊的
          jsp/servlet container 上執(zhí)行了,因?yàn)榕f的規(guī)格是不允被 include 檔案中再出現(xiàn) <%@ page ... %> 這樣的定義的。

          況且,就算你愿意為了 Tomcat 5.0.x 特別維護(hù)一套不同版本的 Source Code,你會遇到重大的挫折,因?yàn)?Tomcat 5.0.x 版在 charset 的設(shè)定上,會特別檢查include 別人的程序與被人include 的程序,這二個程序中所定義的 charset 是不是一樣,如果不一樣,在編譯時就會產(chǎn)生錯誤。更恐怖的是,竟然還分大小寫,比如說:"gb2312" "GB2312" 這樣的定義,在 Tomcat 的認(rèn)定上是不同的。

          更好的解決方案
          在 Tomcat 5.0.x 中,Tomcat 支持了 JSP 2.0 的規(guī)格,同時也支持了部分 J2EE 1.4 的規(guī)格,在 J2EE 1.4 的規(guī)格中,有關(guān) JSP 的部份,有一個 <jsp-config> 的 XML Tag,這個 XML 區(qū)塊用來定義與 JSP 相關(guān)的特殊屬性,包含采用的 taglib 與 以下說明的 <jsp-property-group> ,而解決 include 檔中文問題的方法就定義在 <jsp-roperty-group> 中。

          在當(dāng)前應(yīng)用系統(tǒng)的web.xml里加入jsp-config代碼:

          <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee  http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4">
          <jsp-config>
              <jsp-property-group>  
                  <description>     
                      Special property group for JSP Configuration JSP example.  
                  </description>  
                  <display-name>JSPConfiguration</display-name>  
                  <url-pattern>*.jsp</url-pattern>  
                  <el-ignored>true</el-ignored>  
                  <page-encoding>GB2312</page-encoding>  
                  <scripting-invalid>false</scripting-invalid>  
                  <include-prelude></include-prelude>  
                  <include-coda></include-coda>  
                 
            <description>     
                      Special property group for JSP Configuration JSP example.  
                  </description>  
                  <display-name>JSPConfiguration</display-name>  
                  <url-pattern>*.html</url-pattern>  
                  <el-ignored>true</el-ignored>  
                  <page-encoding>GB2312</page-encoding>  
                  <scripting-invalid>false</scripting-invalid>  
                  <include-prelude></include-prelude>  
                  <include-coda></include-coda>
              </jsp-property-group>
          </jsp-config>

            <welcome-file-list>
              <welcome-file>index.jsp</welcome-file>
              <welcome-file>index.html</welcome-file>
            </welcome-file-list>  

          ... ...

          </webapp>

           

          說明:<jsp-config>里的定義,就是通知當(dāng)前應(yīng)用服務(wù)器,當(dāng)前應(yīng)用系統(tǒng)下,所有的 .jsp, .html 文件,若是沒有定義contentType="text/html;charset=gb2312" 時,就會采用預(yù)設(shè)的 "GB2312" 字符集去處理,如此,就不須要在每個 include 的檔案第一行加上 contentType="text/html;charset=gb2312" 了。

          注:

          <jsp-config>標(biāo)簽使用詳解

          <jsp-config> 包括<taglib> 和<jsp-property-group> 兩個子元素。
             
              其中<taglib>元素在JSP 1.2時就已經(jīng)存在;而<jsp-property-group>是JSP 2.0 新增的元素。
              <jsp-property-group>元素主要有八個子元素,它們分別為:
             
              1.<description>:設(shè)定的說明;
              2.<display-name>:設(shè)定名稱;
              3.<url-pattern>:設(shè)定值所影響的范圍,如:/CH2 或 /*.jsp;
              4.<el-ignored>:若為true,表示不支持EL 語法;
              5.<scripting-invalid>:若為true,表示不支持<% scripting %>語法;
              6.<page-encoding>:設(shè)定JSP 網(wǎng)頁的編碼;
              7.<include-prelude>:設(shè)置JSP 網(wǎng)頁的抬頭,擴(kuò)展名為.jspf;
              8.<include-coda>:設(shè)置JSP 網(wǎng)頁的結(jié)尾,擴(kuò)展名為.jspf。
           
          tomcat 5中include頁面亂碼問題
          <?xml version="1.0" encoding="ISO-8859-1"?>
          <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
          version="2.4">

          <jsp-config>
          <jsp-property-group>
          <description>Special property group for JSP Configuration JSP example.</description>
          <display-name>JSPConfiguration</display-name>
          <url-pattern>*.jsp</url-pattern>
          <el-ignored>true</el-ignored>
          <page-encoding>GBK</page-encoding>
          <scripting-invalid>false</scripting-invalid>
          <include-prelude></include-prelude>
          <include-coda></include-coda>

          <description>Special property group for JSP Configuration JSP example.</description>
          <display-name>JSPConfiguration</display-name>
          <url-pattern>*.html</url-pattern>
          <el-ignored>true</el-ignored>
          <page-encoding>GBK</page-encoding>
          <scripting-invalid>false</scripting-invalid>
          <include-prelude></include-prelude>
          <include-coda></include-coda>
          </jsp-property-group>
          </jsp-config>

          2.關(guān)于中文出現(xiàn)亂碼的解決辦法
           
           
           
          在一個編碼為utf-8的頁面中,使用<jsp:include>包含另一個.jsp/.html文件時,被包含的頁面單獨(dú)瀏覽正常,但被包含后就會遇到亂碼問題。解決的辦法是,在每個被包含的頁面開始加上下面一行<% page contentType="text/html;charset=utf-8" %>這個方法可以解決jsp include jsp的中文亂碼問題。也就是說,被包含的頁面必須改成.jsp,哪怕它的內(nèi)容只有靜態(tài)html,否則的話還是會出現(xiàn)亂碼,如何解決include .html文件中文亂碼的問題,還在尋找中。

          http://blog.csdn.net/szliszt/archive
          主站蜘蛛池模板: 交城县| 沙坪坝区| 翁源县| 辽宁省| 和硕县| 溆浦县| 栾川县| 榆林市| 互助| 大名县| 上虞市| 区。| 阳西县| 二连浩特市| 鄂州市| 济南市| 甘肃省| 胶州市| 宽城| 缙云县| 互助| 绥棱县| 华阴市| 乌拉特中旗| 平山县| 六安市| 曲阳县| 嵊州市| 漳州市| 绥宁县| 琼结县| 庆安县| 包头市| 东乌珠穆沁旗| 韶关市| 河南省| 绥江县| 施秉县| 夹江县| 佛冈县| 平泉县|