mimi_van

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

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

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

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

          現(xiàn)象:中文亂碼,比如“??????”
           
          解決方法如下:

          方法一:-----------嘗試過,有效但確實不可取
          1.         在b.jsp中把pageEncoding="GB2312"改為pageEncoding="ISO8859-1"
                      雖然這樣b.jsp頁面顯示的內(nèi)容還是亂碼,但是不是那種“??????”的亂碼,
                      而是一些特殊字符
          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方式,頁面結(jié)果還是亂碼!
          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.         其實很簡單,就是同時實現(xiàn)方法三又實現(xiàn)方法四!
          2.         就是先配置過濾器,又配置server.xml文件,都設(shè)置成GB2312的編碼
          3.         這樣無論是post還是get方式的表單傳值,中文都不會是亂碼!


          評論

          # re: jsp 頁面之間 get / post 方法 傳遞參數(shù)內(nèi)容 亂碼 解決之道  回復(fù)  更多評論   

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

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 神农架林区| 合江县| 湘阴县| 福州市| 积石山| 新闻| 苏州市| 郁南县| 工布江达县| 榆中县| 年辖:市辖区| 井冈山市| 孙吴县| 马边| 社旗县| 松溪县| 蓝田县| 常熟市| 天等县| 天津市| 岳阳县| 札达县| 榆树市| 烟台市| 勐海县| 彰武县| 巫山县| 霸州市| 吉安市| 安西县| 徐水县| 休宁县| 临武县| 宣武区| 宝清县| 平邑县| 耒阳市| 洞头县| 沈阳市| 松溪县| 大化|