mimi_van

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

          下面的方法也是我在google上搜到的,因?yàn)閲L試了其中一個方法,成功了,
          所以在這里記錄下,備用。

          比如以下兩個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)象:中文亂碼,比如“??????”
           
          解決方法如下:

          方法一:-----------嘗試過,有效但確實(shí)不可取
          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.         但是我個人不喜歡這種方法,因?yàn)榫帉懫饋泶a非常繁瑣

          方法三:
          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傳值時候才可以!
                      當(dāng)是post方式時,照樣是亂碼!
                      *這時我們就可以看出在tomcat5中的post與get傳值方式是不一樣的*
                      *有人要問有沒有一種方法讓傳值使用get方式或post方式都好用呢,
                      下面就是我推薦的方法五*

           方法五:
          1.         其實(shí)很簡單,就是同時實(shí)現(xiàn)方法三又實(shí)現(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)航:
           
          主站蜘蛛池模板: 瓮安县| 常宁市| 沭阳县| 平塘县| 丽水市| 泰州市| 精河县| 辰溪县| 盐边县| 博野县| 武川县| 马鞍山市| 绥阳县| 尖扎县| 通州区| 息烽县| 泗水县| 樟树市| 沁源县| 库车县| 都江堰市| 定陶县| 玛曲县| 内乡县| 出国| 舞钢市| 渭源县| 郸城县| 丁青县| 内乡县| 桐梓县| 游戏| 云霄县| 岳池县| 略阳县| 清原| 喀什市| 新竹县| 高阳县| 湾仔区| 嘉义市|