servlet编码问题
来源:互联网 发布:xyz域名怎么样 编辑:程序博客网 时间:2024/06/05 17:41
输出内容
在Servlet代码中用response的方法来设置输出内容的编码方式,有以下三个方法(转载):
1、response.setCharacterEncoding("UTF-8");
2、response.setContentType("text/html;charset=UTF-8");
3、response.setLocale(new java.util.Locale("zh","CN"));
下面对以上3种方法进行差异分析:
第一种方法只能用来设置out输出流中所采用的编码,但是它的优先权最高,可以覆盖后面两种方法中的设置;
第二中方法可以设置out输出流中字符的编码方式,也可以设置浏览器接收到这些字符后以什么编码方式来解码,它的优先权低于第一种方法,
但高于第三种方法;
第三种方法只能用来设置out输出流中字符的编码方式,但是它的优先权最低,在已经使用前两种方法中的一个设置了编码方式以后,它就被覆盖而不起作用了。
以上方法都得在getWriter()方法前设置;
输入内容
在Servlet代码中设置取得参数的编码方式(学得):
1.对于doPost()方法,用request.setCharacterEncoding("utf-8")指定取得post的请求参数编码,而对于doGet()方法没有效果。
有一个问题是,如果form表单所在页面与setCharacterEncoding("utf-8")的编码不一样的话,也会出错!
2.对于doGet()方法,就麻烦点,方法如下(假设参数是value):(网上查的,不过如果直接在url上写参数就没成功,求高人指点)
第一种,查看tomcat下conf目录,找到server.xml,如果里面的
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>没有编码,则在servlet里用
response.setContentType("text/html;charset=utf-8");
String name=request.getParamenter("name");
name=new String(name.getBytes("ISO-8859-1"),"UTF-8");
这样就可以取得中文参数
第二种,如果server.xml里面的没编码,则添加上编码,然后一定要重启服务器如下
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" URIEncoding="gb2312"/>
再在doGet()方法里设置输出编码即可response.setContentType("text/html;charset=utf-8")。
- jsp servlet 编码问题
- servlet编码问题
- servlet编码问题
- Servlet的编码问题
- Servlet中编码问题
- servlet编码问题
- Tomcat Servlet编码问题
- servlet编码问题
- servlet编码问题
- servlet之编码问题
- JSP/Servlet编码问题总结
- JSP/Servlet中的编码问题
- JSP/Servlet中的编码问题
- JSP/Servlet中的编码问题
- jsp和servlet编码问题
- JSP Servlet编码问题总结
- java、jsp、servlet编码问题
- jsp/servlet中的编码问题
- 标准模板库
- 搭建Jenkins持续集成平台
- 中声明变量的范围
- java(2014/7/14)
- java命名规则以及java概述
- servlet编码问题
- maria项目环境配置
- Android详细的对话框AlertDialog.Builder使用方法
- opencv中Mat的数据类型设置问题
- 这个函数返回值
- jsp分页,完整版
- solr源码导入eclipse
- MySQL设置密码
- 待字闺中之快排单向链表;leetcode之Sort List