response.setCharacter和request.setCharacterEncoding详解
2015-12-28 16:52
453 查看
一、request.setCharacterEncoding():用来确保发往服务器的参数以汉字的编码来提取,设置从request中取得的值或从数据库中取出的值。
指定后可以通过request.getParameter()获取自己想要的字符串,如果没有提前指定,则会按照服务器端默认的“iso-8859-1”来进行编码;该方法只对post请求有效,对get请求无效;对于get请求,应该在server.xml中指定:URIEncoding=utf-8;
注意:在执行request.setCharacterEncoding()之前不能执行request.getParameter()方法;
原因:应该是在执行第一个getParameter()的时候,java将会按照编码分析所有的提交内容,而后续的getParameter()不再进行分析,所以setCharacterEncoding()无效。而对于GET方法提交表单是,提交的内容在URL中,一开始就已经按照编码分析提交内容,setCharacterEncoding()自然就无效。
二、response.setCharacterEncoding():设置HTTP
响应的编码,用于设置服务器给客户端的数据的编码
一般不会用这个方法来设置响应编码,
一般使用response.setContentType()方法来设置HTTP
响应的编码,同时指定了浏览器显示的编码;
因为他在执行该方法通知服务器端以指定编码进行编码后,会自动调用response.setCharacterEncoding()方法来通知浏览器以指定编码来解码;使用此方法要在response.getWriter()执行之前或response提交之前;
指定后可以通过request.getParameter()获取自己想要的字符串,如果没有提前指定,则会按照服务器端默认的“iso-8859-1”来进行编码;该方法只对post请求有效,对get请求无效;对于get请求,应该在server.xml中指定:URIEncoding=utf-8;
注意:在执行request.setCharacterEncoding()之前不能执行request.getParameter()方法;
原因:应该是在执行第一个getParameter()的时候,java将会按照编码分析所有的提交内容,而后续的getParameter()不再进行分析,所以setCharacterEncoding()无效。而对于GET方法提交表单是,提交的内容在URL中,一开始就已经按照编码分析提交内容,setCharacterEncoding()自然就无效。
二、response.setCharacterEncoding():设置HTTP
响应的编码,用于设置服务器给客户端的数据的编码
一般不会用这个方法来设置响应编码,
一般使用response.setContentType()方法来设置HTTP
响应的编码,同时指定了浏览器显示的编码;
因为他在执行该方法通知服务器端以指定编码进行编码后,会自动调用response.setCharacterEncoding()方法来通知浏览器以指定编码来解码;使用此方法要在response.getWriter()执行之前或response提交之前;
相关文章推荐
- Get Jenkins job build queue length
- Get Jenkins job build queue length
- Win10 Mobile下一个预览版或是11088 Build 11088或会包含多项新功能
- IOS-47-动态改变UIView高度最简单的方法
- 安装win7或win8系统时UEFI和Legacy模式的设置
- C# break,continue,return
- iOS通过URL构建UIImage
- EasyUI写的登录界面
- UIImagePicker与UIAlertController组合使用 上传图片
- UIBarButtonSystemItem 各种款式
- UITableView 基本使用方法总结
- [转]iOS各种图片的大小要求 iOS Human Interface Guidelines: Icon and Image Sizes
- UITableView 的使用总结
- iOS UI-创建空项目
- Semi-continuity
- UIKit系列-UIButton 详解
- UIColor的16进制色值,16进制字符串扩展
- Scala: Linearization technique to avoid multiple inheritance
- Easyui---datalist查找文本,并删除该行
- Easyui---numberbox(插件)重写css样式