• JSP请求方式与乱码问题


    源代码,a.jsp往b.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. 这时再在页面上显示,则就是中文了。
     
    方法三:
     
    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方式的表单传值,中文都不会是乱码!
    

      

  • 相关阅读:
    聊聊WS-Federation
    用双十一的故事串起碎片的网络协议(上)
    责任链模式的使用-Netty ChannelPipeline和Mina IoFilterChain分析
    最小化局部边际的合并聚类算法(中篇)
    最小化局部边际的合并聚类算法(上篇)
    UVaLive 7371 Triangle (水题,判矩形)
    UVaLive 7372 Excellence (水题,贪心)
    POJ 3312 Mahershalalhashbaz, Nebuchadnezzar, and Billy Bob Benjamin Go to the Regionals (水题,贪心)
    UVa 1252 Twenty Questions (状压DP+记忆化搜索)
    UVa 10817 Headmaster's Headache (状压DP+记忆化搜索)
  • 原文地址:https://www.cnblogs.com/yifenghong/p/2286977.html
Copyright © 2020-2023  润新知