java 过滤器(参数传递中文乱码)
转自: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 过滤器(参数传递中文乱码)相关推荐
- java 中文乱码过滤器_JAVA中文乱码过滤器(用java过滤器解决中文乱码)V0422 整理版...
JAVA中文乱码过滤器(用java过滤器解决中文乱码)V0422 整理版 不用再担心java中文乱码问题,一步到位,一次性解决.更方便更快捷. web-xml配置 EncodingFilter com ...
- java 过滤器 中文_java中Filter过滤器解决中文乱码办法
java中Filter过滤器解决中文乱码办法 发布时间:2020-04-07 10:19:09 来源:亿速云 阅读:16 作者:小新 这篇文章主要为大家详细介绍了java中Filter过滤器解决中文乱 ...
- Java的各种中文乱码解决方法
Java的各种中文乱码解决方法 参考文章: (1)Java的各种中文乱码解决方法 (2)https://www.cnblogs.com/Survivalist/p/9015754.html 备忘一下.
- java: jsp:param中文乱码
java: jsp:param中文乱码 假如a.jsp/b.jsp文件中 a.jsp代码: 需要加入:request.setCharacterEncoding("UTF-8") ...
- java控制台打印输出 中文乱码 解决办法
java控制台打印输出 中文乱码 解决办法 问题:IDEA控制台打印时出现中文乱码 原因:java资源的编码和ideal的不一致 解决办法: 第一步 1:打开intelliidea安装路径,Intel ...
- IDEA上Java项目控制台中文乱码
目录 一.错误说明 二.解决方案 第一步,修改 idea64.exe.vmoptions 文件 第二步,修改 IDE 编码 第三步,添加 vm options 第四步,编辑自定义 vm options ...
- java工程编辑器中文乱码_Java Web开发项目中中文乱码解决方法汇总
Java Web项目中,解决中文乱码方法总结如下 第一种情况:调用jsp页面中文显示乱码问题描述:通过浏览器调用jsp页面,在浏览器中显示的中文内容出现乱码. 解决方法:首先确认本jsp在编辑器中保存 ...
- 编码过滤器 | 解决中文乱码问题
中文乱码问题的确令人头疼,接收get/post表单参数,或者从数据库取中文数据,都有可能出现乱码. 因为各个环境下使用的字符编码不同,HTML2.0 - HTML4.01.jsp默认使用ISO-885 ...
- java项目ssh中文乱码_【SSH】Struts2处理中文乱码问题总结
学了很久的java,接触SSH也有一段时间了,写成博文总是有点懒,最近在整理一些思绪,把SSH一点一滴放进博客里,以备以后改进,再学习.以我自己的了解,在进行struts开发的过程中,总也是出现很多的 ...
- JavaWeb过滤器解决中文乱码问题
文章目录 前言 一.创建过滤器的类 二.实现接口 1.EncodingFilter implements Filter 2.web.xml注册过滤器 3. 重新运行项目即可 前言 Javaweb三大组 ...
最新文章
- Python 闭包相关之late binding机制
- 如何授予Domain User AD加域权限
- LruCache原理
- (转)搜索Maven仓库 获取 groupid artifactId
- 02.v-cli快速搭建
- [转]十分钟搞定Vue搭建
- 自组网中继台_同频自组网基站
- 区块链相关名词解释(一)
- Extjs study
- 学习STM32F769DK-OTA例程之APP中断向量表重映射
- Windows远程桌面实现之二(抓屏技术之MirrorDriver镜像驱动开发)
- 《缠中说禅108课》15:没有趋势,没有背驰
- 6个适合成年人的自学网站,每天半小时改变你一生
- Python IDLE的下载,安装和使用
- 《JETS Jointly Training FastSpeech2 and HiFi-GAN for End to End Text to Speech》
- BigDecimal.divide异常 ArithmeticException
- java中产生随机数
- 最新CFA二级notes 原版书 课后习题
- 高程文件格式bil bip bsq tiff dem
- 豪华曹操传2014 (数据以及存档文件修改)
热门文章
- 普通人如何月入10万
- 有人问我,一个人创业需要什么技能?
- 为什么感觉每年手机都在升级CPU,但始终都会卡顿?
- 华为和荣耀蓝牙耳机为什么那么贵?
- But Wang Xing, who is concerned about long-term
- sql limit 子句_SQL Server中的FOR XML PATH子句
- SQL Server 2019中SQL表变量延迟编译
- azure云数据库_Azure SQL数据库中的高级数据安全性–数据发现和分类
- json解析和字符串解析_高效创建和解析定界字符串
- 构建Electron的常见问题(Mac)