转自:http://blog.csdn.net/guopengzhang/article/details/5557096

(一)过滤器类编写。

1、设置字符集编码方式:

编写过滤器类:实现接口javax.servlet.Filter

public class CharacterEncodingFilter implements Filter {private String charset;public void destroy() {// TODO Auto-generated method stub
        }public void doFilter(ServletRequest request, ServletResponse response,FilterChain filterChain) throws IOException, ServletException {// TODO Auto-generated method stub
        request.setCharacterEncoding(charset);filterChain.doFilter(request, response);}public void init(FilterConfig config) throws ServletException {// TODO Auto-generated method stubcharset = config.getInitParameter("charset");}}

标注:

  以上过滤器类只能保证post提交方式能正确解码,get方式依然会出问题。

方案1:

String username = new String(request.getParamter("userName").getBytes("ISO8859-1"),"GBK")

此方法在接受页面上能够对post和get两种方式传过来的参数userName进行正确显示,但每个参数都使用这种方式来接受会太麻烦,所以还是使用过滤器的方式比较方便。

方案2:

对于get接受参数的解决方法:修改服务器的配置文件中

修该tomcat服务器的安装目录(E:/Program Files/Apache Software Foundation/Tomcat 6.0/conf)下的server.xml

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443"/>

标注:添加属性 URIEncoding="GBK" ,此方式只能解决get方式提交。

2、检测用户是否登陆的过滤器

public class CheckLoginFilter implements Filter {public void destroy() {// TODO Auto-generated method stub
        }public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException {// TODO Auto-generated method stubHttpServletRequest hsRequest = (HttpServletRequest)request;HttpServletResponse hsResponse = (HttpServletResponse)response;HttpSession session = hsRequest.getSession();//没登录if(session.getAttribute("userID") == null){String uri = hsRequest.getRequestURI();// 请求登录页面if (uri.contains("log")||uri.contains("Log") || uri.contains("reg") || uri.contains("Reg")) {chain.doFilter(request, response);}else {// 请求其它页面hsResponse.sendRedirect("login.jsp");}}else {// 已登录,顺利跳转
            chain.doFilter(request, response);}}public void init(FilterConfig arg0) throws ServletException {// TODO Auto-generated method stub
}}

(二)配置web.xml

    <filter>   <filter-name>CharacterEncodingFilter</filter-name>   <filter-class>cn.guopeng.bbs.filter.CharacterEncodingFilter</filter-class> <init-param><param-name>charset</param-name><param-value>GBK</param-value></init-param></filter>   <filter-mapping>  <filter-name>CharacterEncodingFilter</filter-name>   <url-pattern>/*</url-pattern></filter-mapping><filter><filter-name>CheckLoginFilter</filter-name>   <filter-class>cn.guopeng.bbs.filter.CheckLoginFilter</filter-class>   </filter>   <filter-mapping>   <filter-name>CheckLoginFilter</filter-name>   <url-pattern>/*</url-pattern></filter-mapping>

标注:

(1)想过滤多个页面并且不全部过滤,

如果过滤或不过滤的地址比较有规律可以配置为全部过滤,然后在过滤器中编写代码只过滤一部分,其他的直接请求即可。

如果规律不明显,则只能通过web.xml配置,可以为过滤类写多个<filter-mapping>

(2)web.xml 中如果有servlet的配置信息, 那么filter应该在servlet的下面进行配置。

转载于:https://www.cnblogs.com/tv151579/archive/2013/06/12/3133002.html

java 过滤器(参数传递中文乱码)相关推荐

  1. java 中文乱码过滤器_JAVA中文乱码过滤器(用java过滤器解决中文乱码)V0422 整理版...

    JAVA中文乱码过滤器(用java过滤器解决中文乱码)V0422 整理版 不用再担心java中文乱码问题,一步到位,一次性解决.更方便更快捷. web-xml配置 EncodingFilter com ...

  2. java 过滤器 中文_java中Filter过滤器解决中文乱码办法

    java中Filter过滤器解决中文乱码办法 发布时间:2020-04-07 10:19:09 来源:亿速云 阅读:16 作者:小新 这篇文章主要为大家详细介绍了java中Filter过滤器解决中文乱 ...

  3. Java的各种中文乱码解决方法

    Java的各种中文乱码解决方法 参考文章: (1)Java的各种中文乱码解决方法 (2)https://www.cnblogs.com/Survivalist/p/9015754.html 备忘一下.

  4. java: jsp:param中文乱码

    java: jsp:param中文乱码 假如a.jsp/b.jsp文件中 a.jsp代码: 需要加入:request.setCharacterEncoding("UTF-8")  ...

  5. java控制台打印输出 中文乱码 解决办法

    java控制台打印输出 中文乱码 解决办法 问题:IDEA控制台打印时出现中文乱码 原因:java资源的编码和ideal的不一致 解决办法: 第一步 1:打开intelliidea安装路径,Intel ...

  6. IDEA上Java项目控制台中文乱码

    目录 一.错误说明 二.解决方案 第一步,修改 idea64.exe.vmoptions 文件 第二步,修改 IDE 编码 第三步,添加 vm options 第四步,编辑自定义 vm options ...

  7. java工程编辑器中文乱码_Java Web开发项目中中文乱码解决方法汇总

    Java Web项目中,解决中文乱码方法总结如下 第一种情况:调用jsp页面中文显示乱码问题描述:通过浏览器调用jsp页面,在浏览器中显示的中文内容出现乱码. 解决方法:首先确认本jsp在编辑器中保存 ...

  8. 编码过滤器 | 解决中文乱码问题

    中文乱码问题的确令人头疼,接收get/post表单参数,或者从数据库取中文数据,都有可能出现乱码. 因为各个环境下使用的字符编码不同,HTML2.0 - HTML4.01.jsp默认使用ISO-885 ...

  9. java项目ssh中文乱码_【SSH】Struts2处理中文乱码问题总结

    学了很久的java,接触SSH也有一段时间了,写成博文总是有点懒,最近在整理一些思绪,把SSH一点一滴放进博客里,以备以后改进,再学习.以我自己的了解,在进行struts开发的过程中,总也是出现很多的 ...

  10. JavaWeb过滤器解决中文乱码问题

    文章目录 前言 一.创建过滤器的类 二.实现接口 1.EncodingFilter implements Filter 2.web.xml注册过滤器 3. 重新运行项目即可 前言 Javaweb三大组 ...

最新文章

  1. Python 闭包相关之late binding机制
  2. 如何授予Domain User AD加域权限
  3. LruCache原理
  4. (转)搜索Maven仓库 获取 groupid artifactId
  5. 02.v-cli快速搭建
  6. [转]十分钟搞定Vue搭建
  7. 自组网中继台_同频自组网基站
  8. 区块链相关名词解释(一)
  9. Extjs study
  10. 学习STM32F769DK-OTA例程之APP中断向量表重映射
  11. Windows远程桌面实现之二(抓屏技术之MirrorDriver镜像驱动开发)
  12. 《缠中说禅108课》15:没有趋势,没有背驰
  13. 6个适合成年人的自学网站,每天半小时改变你一生
  14. Python IDLE的下载,安装和使用
  15. 《JETS Jointly Training FastSpeech2 and HiFi-GAN for End to End Text to Speech》
  16. BigDecimal.divide异常 ArithmeticException
  17. java中产生随机数
  18. 最新CFA二级notes 原版书 课后习题
  19. 高程文件格式bil bip bsq tiff dem
  20. 豪华曹操传2014 (数据以及存档文件修改)

热门文章

  1. 普通人如何月入10万
  2. 有人问我,一个人创业需要什么技能?
  3. 为什么感觉每年手机都在升级CPU,但始终都会卡顿?
  4. 华为和荣耀蓝牙耳机为什么那么贵?
  5. But Wang Xing, who is concerned about long-term
  6. sql limit 子句_SQL Server中的FOR XML PATH子句
  7. SQL Server 2019中SQL表变量延迟编译
  8. azure云数据库_Azure SQL数据库中的高级数据安全性–数据发现和分类
  9. json解析和字符串解析_高效创建和解析定界字符串
  10. 构建Electron的常见问题(Mac)