您的位置:首页 > 产品设计 > UI/UE

response.setContentType 与 request.setCharacterEncoding 区别

2014-12-03 13:18 651 查看


response.setContentType 与 request.setCharacterEncoding 区别

分类: jsp2011-11-14
13:42 3208人阅读 评论(0) 收藏 举报

jspservletstring数据库tomcat浏览器

response.setContentType与
request.setCharacterEncoding 区别

request.setCharacterEncoding()是设置从request中取得的值或从数据库中取出的值

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"/>

备注:以上字符编码格式根据自己需要设定,只要保持一致即可
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: