关于myeclipse中web project中文乱码的解决《过滤器Filter》
来源:互联网 发布:python上位机 编辑:程序博客网 时间:2024/05/16 09:31
在使用HttpServletRequest.getParameter(String name)时我们可能会取得中文的乱码。
问题描述:
当利用getParameter()方法去取HTML元素中value值时当元素的value值为中文时用该方法取到的值可能为乱码。这时候我们需要的取得它的中文。
a) 方法一
在利用getParameter方法之前添加如下语句
request.setCharacterEncoding("utf_8");
相对来说用起来比较方便而且对提交方式没有限制。
b) 方法二
如果是get方式提交有中文,楼主还可以去tomcat 的server.xml配置文件里在<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
中加上URIEncoding="GB2312"即可。
缺点:无法解决用post方式提交时的中午乱码
c) 方法三
String kind = new String(request.getParameter("RBLkind").getBytes("iso-8859-1"), "utf-8");但是这个方法只能针对一行一行代码修改要是你要多次利用getParameter方法取
值时要多次输入此行代码比较麻烦。
d) 过滤器(Filter)
在使用过滤器解决乱码问题是form表单的提交方式一定要设为POST默认的是GET。
在web.xml里面加过滤器遇上全部的jsp、servlet、do等所有乱码问题都得消失哈。
(1)、先在项目的src中servlt包添加一个过滤器代码如下
package servlet; import java.io.IOException; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public final class CharacterEncodingFilter implements Filter { private String encoding; private boolean ignore; public CharacterEncodingFilter() { encoding = "utf-8"; ignore = false; } public void init(FilterConfig config) { if (config.getInitParameter("encoding") != null) encoding = config.getInitParameter("encoding"); if (config.getInitParameter("ignore") != null) ignore = (new Boolean(config.getInitParameter("ignore"))) .booleanValue(); } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse res = (HttpServletResponse) response; if (!ignore) { req.setCharacterEncoding(encoding); res.setCharacterEncoding(encoding); } chain.doFilter(request, response); } public void destroy()
{ } }
(2)、在web.xml里面添加过滤器filter <filter> <filter-name>Set Character Encoding</filter-name> <filter-class>servlet.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>Set Character Encoding</filter-name> <url-pattern>*.do</url-pattern> </filter-mapping> <!-- 过滤所有的jsp文件 --> <filter-mapping> <filter-name>Set Character Encoding</filter-name> <url-pattern>*.jsp</url-pattern> </filter-mapping> <!-- 过滤所有的servlet文件 --> <filter-mapping> <filter-name>Set Character Encoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 这样所有的request.getparameter都会经过这个过滤器处理乱码问题就没有了而且可以任意修改<param-value>UTF-8</param-value>不过本人还是较为推荐UTF-8。
0 0
- 关于myeclipse中web project中文乱码的解决(过滤器Filter)
- 关于myeclipse中web project中文乱码的解决《过滤器Filter》
- 关于Filter过滤器解决乱码的使用方法
- 关于servlet中Filter过滤器解决页面乱码问题
- 使用过滤器Filter解决Java系统中中文乱码的问题
- Struts用Filter过滤器解决中文乱码
- Filter 过滤器 中文乱码
- java web中配置Filter解决jsp中文乱码问题
- 解决中文乱码用spring经典编码过滤器 org.springframework.web.filter.CharacterEncodingFilter
- 解决中文乱码用spring经典编码过滤器org.springframework.web.filter.CharacterEncodingFilter
- 解决中文乱码用spring经典编码过滤器org.springframework.web.filter.CharacterEncodingFilter
- jsp中文乱码的Filter过滤器配置
- 解决中文乱码的过滤器
- 过滤器filter-解决乱码的问题
- 解决乱码通用的过滤器程序Filter
- (Filter处理中文乱码)Filter 过滤器的基本知识点
- Filter 过滤器解决全站中文乱码问题
- javaweb开发中的中文乱码问题,使用Filter过滤器解决
- Linux 下的进程初步
- const的常见用法
- 计算几何模板
- 数据库事务
- 孤儿进程和僵尸进程
- 关于myeclipse中web project中文乱码的解决《过滤器Filter》
- Discuz!开发之进程锁类discuz_process介绍
- poj 3250 单调栈
- 设计模式的作用
- 赛码网基础算法——翻转数组(快排的思想)
- 如何对网站进行性能优化
- 不定宽元素居中
- vector对象一边遍历一边删除元素
- CentOS7使用firewalld打开关闭防火墙与端口