关于Servlet出现乱码问题
2019独角兽企业重金招聘Python工程师标准>>>
一般的处理乱码的方式都是用:
request.setCharacterEncoding("GBK")
但是这种方法只对POST方法提交的表单才有效果。
网上资料显示:自从Tomcat5.x开始,GET和POST方法提交的信息,Tomcat采用了不同的方式来处理编码,对于POST请求,Tomcat会仍然使用request.setCharacterEncoding方法所设置的编码来处理,如果未设置,则使用默认的iso-8859-1编码。而GET请求则不同,Tomcat对GET请求并不会考虑使用request.setCharacterEncoding方法设置的编码,而会永远使用iso-8859-1编码,因此,tomcat将会使用iso-8859-1将提交的字节转换成字符串。
鉴于此,提供一下三种解决方法:
1. 将GET请求改成POST请求,然后就可以使用request.setCharacterEncoding方法设置编码,并使用request.getParameter方法直接获得中文请求参数了,这种方法简单明了。
2. 不用改GET请求,在Servlet中使用如下的代码来得到中文请求参数。
String name = new String(request.getParameter("name").getBytes("ISO-8859-1"), "GBK");
3.对于GET方法,还可以通过修改Tomcat的配置来搞定。
方法如下:
在conf/server.xml里的<Connector />标签内加URIEncoding="GBK",或者是UTF-8。如:
<Connector port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="GBK"/>
对于POST方法提交的表单,上面的方法二仍然有效,个人建议使用方法二,因为方法二的代码是利用了Java的编码能力,对于所有的Web服务器都会有效,而setCharacterEncoding方法是通过Web服务器支持的,并不是所有的Web服务器都会对该方法有很好的支持。
转载于:https://my.oschina.net/huangcongcong/blog/512962
关于Servlet出现乱码问题相关推荐
- servlet中文乱码处理
servlet中文乱码处理 如果是post 设置req.setCharacterEncoding("utf-8"); 如果是get,不去修改服务器配置的情况下 new String ...
- 页面跳转之转发和重定向+Servlet中文乱码问题
页面跳转之转发和重定向+Servlet中文乱码问题 一.页面跳转 <?xml version="1.0" encoding="UTF-8"?> &l ...
- java servlet 参数乱码_JSPServlet处理参数中的中文乱码总结
从form表单提交信息到一个JSP页面或者一个Servlet进行处理的时候,提交的中文信息若不加处理的话就会显示乱码,如一串???.现在通过一个例子来进行总结如下: 写一个用户信息提交页面,通过这个页 ...
- servlet中文乱码_10分钟快速掌握Servlet相关基础知识
Servlet的学习路线 1. 创建Servlet 2. Servlet的相关配置 3. Servlet的生命周期 4. HttpServletRequest接口 5. HttpServletResp ...
- 解决使用Servlet输出乱码问题(一行代码解决一切)
使用servlet接收表单数据后,输出出现了乱码,如下: 解决方法: 将下面这行代码粘到你重写的doGet或者doPost方法里就可以了. response.setContentType(" ...
- java servlet 转发和重定向_JavaWeb(一)Servlet中乱码解决与转发和重定向的区别
前言 前面其实已经把Servlet中所有的内容都介绍完了,这篇讲补充一点乱码和重定向与转发之间的区别! 一.request请求参数出现乱码问题 1.1.get请求 1)乱码示例 get请求的参数是在u ...
- ajax html页面传值乱码,jQuery Ajax传值到Servlet出现乱码问题的解决方法
最近在学jquery ui,在做一个小功能的时候需要将前台的值获取到,通过Ajax传递给Servlet,然后再在返回数据结果,但是在Servlet接受参数的时候,通过后台打印,发现接受乱码,代码示例如 ...
- mysql jsp servlet 中文乱码问题。
google一下..你可以找一大堆解决方案..但是我觉得都没有从根本上解决问题..是不是? 我觉得要想根本解决..最主要的方法是统一编码方案..说出来很简单..原因也很简单..但你真的做到了吗.. 首 ...
- servlet中文乱码_Servlet入门 信息过滤
浏览器和web服务器通信,请求是输入的信息流,响应是输出的信息流,它们走的是服务器的同一个端口.当我们想对信息流做统一处理时,可以使用端口后面的过滤器,它就是Servlet API定义的Filter接 ...
最新文章
- 分布式应用框架Akka快速入门
- Python_48re模块的sub方法
- 欧菲光:拟对子公司江西晶超增资9亿元
- 基于JAVA+SpringMVC+MYSQL的营业厅终端销售系统
- Cap22_信息系统安全管理
- html+css笔记1
- 序列化和反序列化(JSON、protobuf)
- 防骗数据库,查询骗子电话QQ等
- jQery 日历 带农历显示
- 阿里IoT套件 使用记录2 消息转发
- 惠普笔记本通过系统如何进入BIOS?
- 【招聘】极限网络全国招聘,海量岗位职等你来
- Eclipse初始化
- ip-guard如果服务器 IP 地址或机器名变更之后对客户端或控制台会有影响吗?
- 利用Python打造短链接服务
- 数据结构(C语言严版)总结
- html输入时提示文字消失,inpuhtml文本框代码t 初始里边有文字提示 当点击时 文字消失 怎么设置...
- 小雉配置--支持向上向下兼容的 配置文件 兼容性 设计
- numpy函数hstack,vstack,dstack简介
- 第三章数据链路层测试题
热门文章
- Spring拓展接口之FactoryBean
- Spring解决循环依赖
- Eclipse Git下载问题:Internal error; consult Eclipse error log.
- 环境搭建:Windows系统下Nacos集群搭建
- solr-4.10.3.tgz.tgz下载
- Flutter开发系列教程
- Photo Sphere Viewer 全景图
- 极客时间App安卓版上线,让知识获取更加简单
- 海量数据切分抽取的实践场景(r11笔记第43天)
- 使用Red Gate Sql Compare 数据库同步工具进行SQL Server的两个数据库的结构比较、同步...