JSP与Servlet的编解码
一、java web中涉及编解码的地方
(1)浏览器端向后台发起请求时:URL、Cookie、Parameter;
(2)后台响应返回数据时:页面编码,数据库数据编码;
二、在各处设置统一编码(以服务器tomcat,编码UTF-8为例)
(1)URL的编解码:在tomcat配置文件server.xml中设置<Connector URIEncoding="UTF-8" useBodyEncodingForURI="true">,可解决以Get方法提交参数中文乱码的问题。如果没有定义,那么tomcat将以默认编码ISO-8859-1解析,URIEncoding是对URI(即URL除掉端口之前的剩下部分)的解码,useBodyEncodingForURI是对QueryString(即URL?后的参数)的解码。另外,在filter中使用request.getRequestURI()出现乱码的话,可用URLDecoder.decode解码。
(2)POST表单的编解码:一定要在第一次调用request.getParameter之前,通过request.setCharacterEncoding(charset)来设置。POST表单参数是通过HTTP的BODY传递到服务端的,浏览器是根据ContentType的Charset对表单参数进行编码,而在服务端如果没有设置CharaterEncoding的话,将以ISO-8859-1编码解析参数。
(3)HTTP BODY的编解码:可通过response.setCharacterEncoding来设置,它是对服务器响应内容进行编码;还可在页面设置contentType="text/html;charset=UTF-8",也是指定对服务器响应内容的编码字符。而浏览器将通过Content-Type的charset来解码。另外,在jsp页面设置pageEncoding="UTF-8"的作用是设置JSP编译成Servlet时使用的编码。
(4)访问数据库编码:主要设置JDBC URL来指定,添加useUnicode=true&characterEncoding=UTF-8即可。
最后,本文主要参照君山的博客:http://xulingbo.net/ 。
最新文章
- sqlalchemy学习
- jacascript中的原型链以原型
- sqlserver 对字符串的SUM
- jquery 时间运算、格式化的方法扩张
- ASP.NET SignalR 与 LayIM2.0 配合轻松实现Web聊天室(六) 之 Layim源码改造右键菜单--好友、组管理功能的实现。
- Product of Array Exclude Itself
- 如何在 Linux 中整理磁盘碎片
- SQL SERVER 锁定的实例
- yii2 用gii生成后台模块 view path描述
- MySQL的InnoDB表如何设计主键索引-转自淘宝MySQL经典案例
- Eclipse插件管理
- VC++深入详解读书笔记-第六章菜单
- bootstrap table笔记
- This application failed to start because it could not find or load the Qt platform plugin &;quot;xcb&;quot;.
- Ext.grid.EditorGridPanel保存
- YOLO理解
- how to istall virtualbox on centos
- webapi core2.1 Identity.EntityFramework Core进行配置和操作数据 (一)没什么用
- js 截取指定字符长度 为数组
- JSONPATH使用方法
热门文章
- 【iOS系列】-自定义Modar动画
- UIPanGestureRecognizer上下左右滑动方向推断算法
- python -- day 11 考试题
- configuration类详解
- Axure Base 07 元件使用思路的补充
- android adb源码分析(5)【转】
- Oracle:datafile删除后,重启server报ORA-01110
- codeforces 505C C. Mr. Kitayuta, the Treasure Hunter(dp)
- 从OutStreamWriter 和Filewriter谈Java编码
- MFC之document与view实践总结