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是亂碼了……

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


          網站導航:
           
          主站蜘蛛池模板: 青岛市| 灵武市| 胶州市| 郁南县| 固安县| 长丰县| 察哈| 苍山县| 金坛市| 桂东县| 湖南省| 隆回县| 平武县| 永修县| 靖州| 洪泽县| 万州区| 漾濞| 津市市| 石家庄市| 根河市| 海原县| 佛学| 凤庆县| 泸定县| 长兴县| 晋州市| 湖南省| 卓尼县| 郑州市| 上高县| 墨竹工卡县| 额尔古纳市| 静宁县| 甘谷县| 那曲县| 稷山县| 西青区| 商城县| 岳普湖县| 怀安县|