使用过滤器对所有请求进行字符编码过滤
来源:互联网 发布:js document 创建标签 编辑:程序博客网 时间:2024/06/05 20:28
过滤器Filter
A filter is an object that performs filtering tasks on either the request to a resource (a servlet or static content), or on the response from a resource, or both.
过滤器对访问资源的请求或服务器的响应进行过滤
Filters perform filtering in the doFilter method.
在doFilter()方法中进行过滤
Filters are configured in the deployment descriptor of a web application
过滤器必须在配置文件web.xml中进行配置
字符过滤器的代码实现
import java.io.IOException;import java.io.UnsupportedEncodingException;import java.util.Enumeration;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServletRequest;public class CharacterEncodingFilter implements Filter{ protected String encoding = null; protected FilterConfig filterConfig = null; protected boolean ignore = true; //是否忽视指定的字符集 默认为true @Override public void destroy() { this.encoding = null; this.filterConfig = null; } void encoding(HttpServletRequest request){ Enumeration<?> names = request.getParameterNames(); while(names.hasMoreElements()){ String[] values = request.getParameterValues(names.nextElement().toString()); for(int i = 0; i < values.length; i++){ try { values[i] = new String(values[i].getBytes("iso-8859-1"),encoding); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } } } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { if(ignore || (request.getCharacterEncoding() == null)){ String encoding = selectEncoding(request); if(encoding != null){ request.setCharacterEncoding(encoding); } HttpServletRequest req = (HttpServletRequest) request; if(req.getMethod().equalsIgnoreCase("get")){ encoding(req); } } chain.doFilter(request, response); } private String selectEncoding(ServletRequest request) { return (this.encoding); } @Override public void init(FilterConfig filterConfig) throws ServletException { this.filterConfig = filterConfig; this.encoding = filterConfig.getInitParameter("encoding"); String value = filterConfig.getInitParameter("ignore"); if (value == null) this.ignore = true; else if (value.equalsIgnoreCase("true")) this.ignore = true; else if (value.equalsIgnoreCase("yes")) this.ignore = true; else this.ignore = false; }}
配置
<filter> <filter-name>CharacterEncodingFilter</filter-name> <filter-class>com.icss.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>CharacterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> <!-- 对所有请求进行过滤 --> </filter-mapping>
阅读全文
0 0
- 使用过滤器对所有请求进行字符编码过滤
- 使用Huffman方法对字符进行编码
- 过滤器的编写(过滤字符编码)
- SpirngMVC框架下使用filter对字符进行过滤
- EncodingFilter 全站编码过滤器 get请求中文编码过滤
- 用过滤器类进行字符编码过虑
- 字符编码过滤器中对特殊的路径进行特殊处理
- springMvc对请求路径进行过滤
- 过滤器过滤请求.jsp
- Filter过滤器 过滤请求
- IIS7.5中对所有请求响应的JSON数据进行GZIP编码
- IIS7.5中对所有请求响应的JSON数据进行GZIP编码
- java 过滤器(过滤客户端表单特殊字符、服务器端特殊字符、以及编码过滤)
- 用过滤器对jsp页面中的敏感字段进行过滤
- 使用过滤器解决字符编码问题
- 使用Filter过滤器解决字符编码问题
- JSP中使用过滤器进行内容编码
- Filter过滤器的使用,实现在规定时间内过滤请求
- 南阳理工_66分数拆分
- 个人作业 2017.10.20
- np.array 添加维度
- 多条目加载
- HTML route 登录+游戏+修改密码
- 使用过滤器对所有请求进行字符编码过滤
- Python numpy.random中的shuffle和permutation函数的区别
- Lavarel 5.5安装步骤整理
- exce函数族及其用法
- ipython notebook使用教程
- 文章标题
- noip模拟赛公交车(这也留一个坑)
- 背包问题-贪心算法
- javascript作用域