Filter:JSP系统设置编码过滤器
2013-12-17 12:46
375 查看
迅速配置属于自己的过滤器。
先从JSP的编码入手,开发编码filter。
步骤一:在web.xml上添加<filter>,代码如下。
上面的配置的filter,路径为com.demo.filter.EncodeFilter,命名encodeFilter,映射过滤文件为/*(即全部过滤)。另外在定义filter时,初始化了两个参数:encode、ignore,两个参数在xml里面配置然后由后台Filter类应用,前者赋值为编码方式utf-8,后者赋值false即是否开启过滤。再看看后台类的实现。
可以看到,本类EncodeFilter继承了父类Filter(抽象类),要求实现父类的三个方法:init(FilterConfig filterConfig)、doFilter(ServletRequest request, ServletResponse response,FilterChain chain)、destroy(),如EncodeFilter类的三个成员方法就是了。结合前面配置的web.xml,很快就上手了。
先从JSP的编码入手,开发编码filter。
步骤一:在web.xml上添加<filter>,代码如下。
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <filter> <filter-name>encodeFilter</filter-name> <filter-class>com.demo.filter.EncodeFilter</filter-class> <init-param> <param-name>encode</param-name> <param-value>utf-8</param-value> </init-param> <init-param> <param-name>ignore</param-name> <param-value>false</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodeFilter</filter-name> <url-pattern>/*</url-pattern> <!-- "/*"即对所有的请求进行过滤 --> </filter-mapping>
上面的配置的filter,路径为com.demo.filter.EncodeFilter,命名encodeFilter,映射过滤文件为/*(即全部过滤)。另外在定义filter时,初始化了两个参数:encode、ignore,两个参数在xml里面配置然后由后台Filter类应用,前者赋值为编码方式utf-8,后者赋值false即是否开启过滤。再看看后台类的实现。
package com.demo.filter; import java.io.IOException; 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; /* * 设置传值编码:UTF-8 */ public class EncodeFilter implements Filter { private String encode = null; private boolean ignore = false; public void init(FilterConfig filterConfig) throws ServletException { String encode = filterConfig.getInitParameter("encode"); String ignore = filterConfig.getInitParameter("ignore"); if (this.encode == null) this.encode = encode; if ("1".equals(ignore) || "true".equals(ignore)) { this.ignore = true; } } public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws IOException, ServletException { if (!ignore) { if (null == request.getCharacterEncoding()) { request.setCharacterEncoding(encode); } } chain.doFilter(request,response); } public void destroy() { encode = null; ignore = false; } }
可以看到,本类EncodeFilter继承了父类Filter(抽象类),要求实现父类的三个方法:init(FilterConfig filterConfig)、doFilter(ServletRequest request, ServletResponse response,FilterChain chain)、destroy(),如EncodeFilter类的三个成员方法就是了。结合前面配置的web.xml,很快就上手了。
相关文章推荐
- Filter:JSP系统设置多个过滤器
- JSP 开发中过滤器filter设置编码格式的实现方法
- 用过滤器filter设置编码格式
- 初识过滤器(Filter)-------简单的用法及用过滤器做设置编码模板
- 用过滤器filter设置编码格式
- jsp_filter 编码 过滤器
- 04-封装BaseServlet和设置全站请求编码过滤器EncodingFilter
- 用过滤器filter设置编码格式
- 过滤器篇(2)-----过滤器设置编码格式与清除浏览器缓存(EncodingFilter , NoCacheFilter)
- JSP乱码总结和自定义Filter设置编码
- 用过滤器filter设置编码格式
- 关于前后台编码设置理解和web.xml编码过滤器CharacterEncodingFilter理解马克
- JavaWeb-过滤器Filter学习(二)设置全站编码与设置页面缓存
- Filter(过滤器)之字符替换和编码设置
- 在jsp页面page指令中pageEncoding怎么设置默认编码方式为utf-8?
- 【WEB小工具】EncodingFilter—设置全局编码
- JSP中的编码设置
- JSP中的编码设置
- Myeclipse技巧-jsp设置默认编码格式
- Linux系统的默认编码设置