tomcat get请求中文乱码

tomcat7中,保证get数据采用UTF8编码,在server.xml中进行了如下设置:

加:URIEncoding="UTF-8"

<Connector port="8080" maxThreads="150"minSpareThreads="25"
maxSpareThreads="75" enableLookups="false"redirectPort="8443"
acceptCount="100" debug="99" connectionTimeout="20000"
disableUploadTimeout="true"URIEncoding="UTF-8"/>

指定了get时候的数据编码。当使用IIS作为webserver转发servlet/jsp请求给Tomcat时候,这个设置却失效

其实原因很简单:IIS是通过AJP协议,把请求转发到Tomcat监听的8009端口上的,所以这里针对8080的设置自然就无效

正确的方法是进行下面的设置:

<Connector port="8009" enableLookups="false"redirectPort="8443"
debug="0" protocol="AJP/1.3"URIEncoding="UTF-8"/>

扩展:

8080端口,负责建立HTTP连接。在通过浏览器访问Tomcat服务器的Web应用时,使用的就是这个连接器。  

8009端口,负责和其他的HTTP服务器建立连接。在把Tomcat与其他HTTP服务器集成时,就需要用到这个连接器。

通过验证测试,此方法对在Linux上部署的tomcat服务器发生的请求中文乱码,同样有效。

原址链接:http://blog.csdn.net/zelda002/article/details/8013402

时间: 2024-08-13 07:48:51

tomcat get请求中文乱码的相关文章

Wildfly8 POST请求中文乱码分析与解决

最近遇到的一个关于POST请求中文乱码的问题,原本应用是在TOMCAT上运行的,切换到Wildfly8后,测试环境是正常的,但生产环境下客户端发出的相同请求在服务端获取到的中文出现了乱码,在经过定位后发现是Wildfly8的一个配置引起的. 问题分析如下: 在HTTP的POST请求中,如果是这种情况 Content-Type: application/x-www-form-urlencoded;charset=utf-8 ,若没有设置charset=utf-8,这时可能会出现请求参数中文乱码的情

项目中get/post请求中文乱码的解决方案

一.解决get请求中文乱码的方案: 方案(推荐)1: 一般情况下tomcat(8之前)服务器的编码默认是ISO8859-1,所以要对get请求提交的参数进行重新编码: String userName = new String(request.getParamter("userName").getBytes("ISO8859-1"),"utf-8"); 方案(不推荐)2: 既然知道了tomcat服务器的编码默认是ISO8859-1,那么可以修改to

Tomcat,SpringMVC 中文乱码问题解决

GET 协议提交的中文乱码: URL参数,是在tomcat层面进行解析的,需要设置uriencoding参数为utf-8. 找到server.xml文件(一般在/etc/tomcat6/server.xml),修改为: <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding=&

在Filter中使用动态代理解决请求中文乱码问题

使用动态代理解决请求中文乱码问题 1.增强一个类我们常用的几种解决方案: 1.继承 a) 优点简单 b) 必须有被增强类的实现类 2.装饰者模式 a) 要求:1实现相同的接口.2持有被增强的对象 b) 优点:不必知道被增强的实现是谁 c) 缺点:必须实现所有没被增强方法的原始对象的原样调用 3.动态代理 a) 要求:1实现相同接口,2持有被增强的对象 b) 优点:不必手动实现所有不增强方法的原样调用.对方法进行增强时有类似过滤器的功能. c) 缺点:学习成本高. 代理(Proxy): 一个代理对

请求中文乱码问题

package com.bjsxt.servlet; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.bjsxt.pojo.Us

idea中tomcat控制台输出中文乱码问题的解决

idea中tomcat控制台输出中文乱码问题的解决 每次用新的tomcat和idea都会遇到tomcat控制台中文乱码问题,故在此整理. 基本上都是需要修改tomcat的启动参数(如果本身idea编码都统一设置为utf-8了) 打开tomcat下的bin目录,找到catalina.bat文件 找到 JAVA_OPTS 参数,在其中加上 -Dfile.encoding=UTF-8(用的7.0.82版本的设置为UTF-8,8.0.20版本的需要设置为GBK,目前不知道原因,可能是组件的编码有变化)

Get,Post请求中文乱码问题有效解决方法

对于做Java WEB项目同学来说,中文乱码问题是一个经常遇到而又非常头痛的问题,而最容易出现乱码的环节就是在浏览器向服务器发送请求的过程,至于出现乱码的原因不是本文的关注的重点,想了解的朋友可以参考 http://zhaomin819111.blog.163.com/blog/static/10659004200943112950956/ 本文主要介绍如何有效解决web请求中的乱码问题,其实解决方法有很多种,不同的请求类型解决方法也不相同. 本文只介绍最方便的一种: 1.针对Post方式提交的

SpringMVC如何解决POST请求中文乱码问题,GET的又如何处理呢?

在web.xml中 <filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <pa

解决apache+tomcat服务器环境中文乱码的问题

在使用apache做转发服务器时,碰到了中文乱码的问题. 说说解决思路: 1.通常乱码是因为编码不统一造成的,所以要先判断是不是因为编码问题造成的,如果是的话,那统一编码就可以去解决. 2.tomcat配置问题. tomcat下的conf/server.xml 两处加上URIEncoding="UTF-8" 如下: 版权声明:本文为博主原创文章,未经博主允许不得转载.