mimi_van

          吞下寂寞的戀人
          posts - 30, comments - 45, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          下面的方法也是我在google上搜到的,因為嘗試了其中一個方法,成功了,
          所以在這里記錄下,備用。

          比如以下兩個jsp頁面之間的傳遞:

          a.jsp頁面內容:
          <%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
          <form action="b.jsp">
              name:<input type=text name=name>
              <input type=submit>
          </form>
           
          b.jsp頁面內容:
          <%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>
          <%
           String name=request.getParameter("name");
          %>
          <body>
              <%=name%>
          </body>

          現象:中文亂碼,比如“??????”
           
          解決方法如下:

          方法一:-----------嘗試過,有效但確實不可取
          1.         在b.jsp中把pageEncoding="GB2312"改為pageEncoding="ISO8859-1"
                      雖然這樣b.jsp頁面顯示的內容還是亂碼,但是不是那種“??????”的亂碼,
                      而是一些特殊字符
          2.         然后在瀏覽器中查看菜單中修改成GB2312的編碼,這時亂碼就顯示中文了。
          3.         但是這種方法是不可行的。

          方法二:---------- 嘗試過,有效。我的部分頁面就是用該方法
          1.         在b.jsp中把String name=request.getParameter("name");修改為
                      String name=new String(request.getParameter("name").getBytes("ISO-8859-1"),"GB2312");
          2.         這時再在頁面上顯示,則就是中文了。
          3.         但是我個人不喜歡這種方法,因為編寫起來代碼非常繁瑣

          方法三:
          1.         有人說修改get/post的傳值方式,但是這是有前提的,
                      如果只是把get方式修改成post方式,頁面結果還是亂碼!
          2.         前提你必須配置了過濾器,若果你只是配置了過濾器,
                      則傳值方式必須是:post方式才不是亂碼,如果是get方式照樣是亂碼!
          3.         過濾器的配置,我想大家都能有,我就不說了

          方法四:
          1.         有人說配置tomcat的配置文件server.xml里這句:
                       <Connector URIEncoding="GB2312" 
                          port="8080"   maxHttpHeaderSize="8192"
                         maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
                         enableLookups="false" redirectPort="8443" acceptCount="100"
                         connectionTimeout="20000" disableUploadTimeout="true" />
           
                          加上這句:URIEncoding="GB2312"

          2.         雖然可以但是有前提的,若果你過濾器沒有配置,
                      則只是配置了server.xml文件,這樣只有在表單是get傳值時候才可以!
                      當是post方式時,照樣是亂碼!
                      *這時我們就可以看出在tomcat5中的post與get傳值方式是不一樣的*
                      *有人要問有沒有一種方法讓傳值使用get方式或post方式都好用呢,
                      下面就是我推薦的方法五*

           方法五:
          1.         其實很簡單,就是同時實現方法三又實現方法四!
          2.         就是先配置過濾器,又配置server.xml文件,都設置成GB2312的編碼
          3.         這樣無論是post還是get方式的表單傳值,中文都不會是亂碼!


          評論

          # re: jsp 頁面之間 get / post 方法 傳遞參數內容 亂碼 解決之道  回復  更多評論   

          2009-02-04 14:14 by 安定法
          request.setCharacterEncoding("UTF-8");
          就能解決POST是亂碼了……

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 梨树县| 新巴尔虎右旗| 界首市| 蕉岭县| 永和县| 阿坝县| 苍南县| 巨野县| 海晏县| 济南市| 钦州市| 越西县| 呼玛县| 辽阳市| 竹山县| 桓台县| 临邑县| 砀山县| 达拉特旗| 兴安盟| 伽师县| 仁化县| 山东省| 兴安县| 浮梁县| 同仁县| 墨脱县| 宜州市| 库伦旗| 安陆市| 揭阳市| 云和县| 四川省| 铁岭县| 中宁县| 武夷山市| 弥渡县| 东乡族自治县| 宁津县| 罗定市| 湖南省|