response.setContentType与 request.setCharacterEncoding 区别
来源:互联网 发布:普通话翻译四川话软件 编辑:程序博客网 时间:2024/06/04 19:43
1、request.setCharacterEncoding()是设置从request中取得的值或从数据库中取出的值
指定后可以通过getParameter()则直接获得正确的字符串,如果不指定,则默认使用iso8859-1编码。值得注意的是在执行setCharacterEncoding()之前,不能执行任何getParameter()。而且,该指定只对POST方法有效,对GET方法无效。分析原因,应该是在执行第一个getParameter()的时候,java将会按照编码分析所有的提交内容,而后续的getParameter()不再进行分析,所以setCharacterEncoding()无效。而对于GET方法提交表单是,提交的内容在URL中,一开始就已经按照编码分析提交内容,setCharacterEncoding()自然就无效。
get需在Tomcat的server.xml中的:
URIEncoding="GBK" />) 加入URIEncoding="GBK",解决get请求乱码问题
2、response.setContentType("text/xml;charset=GBK")是设置页面中为中文编码
前者是设置动态文字(参数,数据库),后者设置页面静态文字
response.setContentType指定 HTTP 响应的编码,同时指定了浏览器显示的编码.
response.setCharacterEncoding设置HTTP 响应的编码,如果之前使用response.setContentType设置了编码格式,则使用response.setCharacterEncoding指定的编码格式覆盖之前的设置.
与response.setContentType相同的是,调用此方法,必须在getWriter执行之前或者response被提交之前
补充:
问题1 :从Jsp页面页面传递参数到Servlet显示中文乱码
解决办法:
如果是post 方法提交 则加入以下代码:
request.setCharacterEncoding("GBK");//注意首先保证编码一至,jsp页面用什么编码在此就用什么编码(GBK/GB2312等),此代码只对post提交方式有效
response.setContentType("text/xml;charset=GBK")是设置页面中为中文编码
备注:以上两行代码必须放在PrintWriterout=response.getWriter(); 之前
get 方法提交
如变量name 用
String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"GBK");
问题2:解决get方式提交乱码问题:
修改tomcat server.xml 文件,加上红色部分代码
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
URIEncoding="GBK"/>
- response.setContentType 与 request.setCharacterEncoding 区别
- response.setContentType 与 request.setCharacterEncoding 区别
- response.setContentType 与 request.setCharacterEncoding 区别
- response.setContentType与 request.setCharacterEncoding 区别
- response.setContentType与 request.setCharacterEncoding 区别
- response.setContentType与 request.setCharacterEncoding 区别
- response.setContentType 与 request.setCharacterEncoding 区别
- response.setContentType与 request.setCharacterEncoding 区别
- response.setContentType与 request.setCharacterEncoding 区别
- response.setContentType与 request.setCharacterEncoding 区别
- response.setContentType与 request.setCharacterEncoding 区别
- response.setContentType与 request.setCharacterEncoding 区别
- response.setContentType与 request.setCharacterEncoding 区别
- response.setContentType与 request.setCharacterEncoding 区别
- response.setContentType 与 request.setCharacterEncoding 区别
- response.setContentType与 request.setCharacterEncoding 区别
- response.setContentType与 request.setCharacterEncoding 区别
- response.setContentType 与 request.setCharacterEncoding 区别
- source insight常用快捷方式总结
- 远程开机控制详解
- 海量数据处理方法总结
- linux系统编码方式设置
- Android在SurfaceView做动画一般方法
- response.setContentType与 request.setCharacterEncoding 区别
- Eclipse中开发Appfuse2.0项目
- 精确算出n的阶乘
- LINUX中a3c2440总线频率、时钟的设置
- NSURLCache 深入研究
- Oracle EBS与第三方应用进行集成(李鸣(aicken)原创 )
- SQL2008无法连接到.\SQLEXPRESS,用户'sa'登录失败(错误18456)图文解决方法
- matlab实现gabor filter (1)
- forms 、elements这是关于form的一个例子