常用过滤器 (Filter)
2016-01-06 10:58
399 查看
常用过滤器 (Filter)
编码过滤器
解决post请求乱码,和响应乱码配置web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app> <!-- 过滤器 --> <filter> <filter-name>encodingFilter</filter-name> <!-- 设置过滤器名称 以便mapping匹配过滤器 --> <filter-class>com.etc.filter.EncodingFilter</filter-class><!-- 过滤器实现类 --> <init-param><!-- 初始化参数 可以在FilterConfig中读取该参数 --> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> </filter> <!-- 过滤器匹配条件 --> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
2.EncodingFilter类
package com.etc.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class EncodingFilter implements Filter { private String encoding = "UTF-8"; public void destroy() { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { //设置编码 request.setCharacterEncoding(encoding); response.setCharacterEncoding(encoding); chain.doFilter(request, response); } public void init(FilterConfig config) throws ServletException { //初始化参数 String encoding = config.getInitParameter("encoding"); if (encoding != null) { this.encoding = encoding; } } }
日志过滤器
记录用户访问日志配置web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app> <!-- 过滤器 --> <filter> <filter-name>logFilter</filter-name> <!-- 设置过滤器名称 以便mapping匹配过滤器 --> <filter-class>com.etc.filter.LogFilter</filter-class><!-- 过滤器实现类 --> </filter> <!-- 过滤器匹配条件 --> <filter-mapping> <filter-name>logFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
2.LogFilter类
package com.etc.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class LogFilter implements Filter { public void destroy() { } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { //转换为http相关类 HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse resp = (HttpServletResponse) response; //打印访问日志,开始 System.out.println("" + System.currentTimeMillis() + ",start," + req.getRemoteHost() + "," + req.getRequestURI()); chain.doFilter(request, response); //打印访问日志,结束 System.out.println("" + System.currentTimeMillis() + ",end ," + req.getRemoteHost() + "," + req.getRequestURI()); chain.doFilter(request, response); } public void init(FilterConfig config) throws ServletException { //初始化参数 } }
相关文章推荐
- android 控制导航栏内容占据父布局的比例且位置水平居中
- SOQL and SOSL
- android ToolBar详解
- Python 中Python 为什么要继承 object 类
- 【转】鏡頭校正(Lens Shading Correction)
- searchBar 方法总结
- 略缩图
- Spring AOP中pointcut expression表达式解析
- HPUX修改disk实例号--11.31only
- mariadb 10 安装 使用官方仓库
- linux下 open() write() read() close函数
- 关于iptables的调整
- Fragment的生命周期
- iOS正则表达式
- C#位移运算符
- 移动端常用布局(一)
- 内存修改console
- 控件ListView
- 每天一个Linux命令 - 【find】
- 你真的了解 MySQL 数据库的运行状况吗?