zoukankan      html  css  js  c++  java
  • JSP中乱码问题,你真的理解了么?

    使用JSP和Servlet时经常碰到中文乱码问题。

    经过学习实践后,现总结如下:

    1、POST方式存取数据、GET取数据都可以使用过滤器来修改编码方式

    核心代码:

    request.setCharacterEncoding("UTF-8");

    2、GET发送数据时,使用上述设置无效。原理如下:

    post请求和get请求存放参数位置是不同的。

    post方式参数存放在请求数据包的消息体中。

    get方式参数存放在请求数据包的请求行的URI字段中,以?开始以param=value&parame2=value2的形式附加在URI字段之后。

    而request.setCharacterEncoding(charset) 只对消息体中的数据起作用,对于URI字段中的参数不起作用,因此无效。

    可以使用如下任意一种方式来修改:

    (1)在tomcat中修改配置文件,增加URIEncoding="UTF-8",位置/conf/servr.xml,修改代码如下:

    <Connector port="8080" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443" URIEncoding="UTF-8"/>

    (2)使用过滤器,核心代码:

    String paramValue = request.getParameter("paramName");
    paramValue = new String(paramValue.trim().getBytes("ISO-8859-1"), “UTF-8”);

    附两篇扩展阅读:

    (1)原理更详细版:http://lavasoft.blog.51cto.com/62575/274527

    (2)代码更完整版:http://www.iteye.com/topic/483158

  • 相关阅读:
    Java语言----三种循环语句的区别
    选择结构if语句和switch语句的区别
    java中实现多态的机制是什么?
    SpringMVC的运行原理
    Struts1运行原理以及整合步骤
    我回来啦!
    Struts2的运行原理和运行与原理
    初步认识 Web Service
    spring Aop 注解
    mina2.0 spring
  • 原文地址:https://www.cnblogs.com/dhuhank/p/4442568.html
Copyright © 2011-2022 走看看