servlet自定义过滤器
来源:互联网 发布:ubuntu无法拖拽复制 编辑:程序博客网 时间:2024/06/08 14:20
web.xml
<!-- 编码过滤器 --> <filter> <filter-name>setCharacterEncoding</filter-name> <filter-class>com.company.strutstudy.web.servletstudy.filter.EncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>setCharacterEncoding</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 请求url日志记录过滤器 --> <filter> <filter-name>logfilter</filter-name> <filter-class>com.company.strutstudy.web.servletstudy.filter.LogFilter</filter-class> </filter> <filter-mapping> <filter-name>logfilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
编码过滤器
public class EncodingFilter implements Filter { private String encoding; private Map<String, String> params = new HashMap<String, String>(); // 项目结束时就已经进行销毁 public void destroy() { System.out.println("end do the encoding filter!"); params=null; encoding=null; } public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException { //UtilTimerStack.push("EncodingFilter_doFilter:"); System.out.println("before encoding " + encoding + " filter!"); req.setCharacterEncoding(encoding); // resp.setCharacterEncoding(encoding); // resp.setContentType("text/html;charset="+encoding); chain.doFilter(req, resp); System.out.println("after encoding " + encoding + " filter!"); System.err.println("----------------------------------------"); //UtilTimerStack.pop("EncodingFilter_doFilter:"); } // 项目启动时就已经进行读取 public void init(FilterConfig config) throws ServletException { System.out.println("begin do the encoding filter!"); encoding = config.getInitParameter("encoding"); for (Enumeration e = config.getInitParameterNames(); e .hasMoreElements();) { String name = (String) e.nextElement(); String value = config.getInitParameter(name); params.put(name, value); } } }
日志过滤器
public class LogFilter implements Filter { FilterConfig config; public void destroy() { this.config = null; } public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { // 获取ServletContext 对象,用于记录日志 ServletContext context = this.config.getServletContext(); //long before = System.currentTimeMillis(); System.out.println("before the log filter!"); //context.log("开始过滤"); // 将请求转换成HttpServletRequest 请求 HttpServletRequest hreq = (HttpServletRequest) req; // 记录日志 System.out.println("Log Filter已经截获到用户的请求的地址:"+hreq.getServletPath() ); //context.log("Filter已经截获到用户的请求的地址: " + hreq.getServletPath()); try { // Filter 只是链式处理,请求依然转发到目的地址。 chain.doFilter(req, res); } catch (Exception e) { e.printStackTrace(); } System.out.println("after the log filter!"); //long after = System.currentTimeMillis(); // 记录日志 //context.log("过滤结束"); // 再次记录日志 //context.log(" 请求被定位到" + ((HttpServletRequest) req).getRequestURI() // + "所花的时间为: " + (after - before)); } public void init(FilterConfig config) throws ServletException { System.out.println("begin do the log filter!"); this.config = config; } }
阅读全文
0 0
- servlet自定义过滤器
- 自定义JSP与Servlet中文乱码过滤器
- servlet 过滤器
- Servlet 过滤器
- servlet过滤器
- Servlet过滤器
- Servlet过滤器
- Servlet过滤器
- Servlet过滤器
- Servlet过滤器
- Servlet过滤器
- Servlet过滤器
- Servlet过滤器
- Servlet过滤器
- Servlet过滤器
- Servlet过滤器
- Servlet过滤器
- Servlet过滤器
- 【程序猿分享】精美的Bootstrap背景导航
- Android TextWatcher三个回调详解,监听EditText的输入
- 教你用Python发现即将流失的客户(附代码、安装教程、学习资源)
- leetcode 472. Concatenated Words
- android listview ,recycleView item没有点击效果
- servlet自定义过滤器
- 阿里传奇工程师多隆的程序世界
- java docx4j 工具和xdocreport工具创建PDF或者word报表
- ShiroFilterFactoryBean 处理拦截资源文件问题)(Shiro权限管理)
- 决策树中各项参数
- 阿里传奇工程师多隆的程序世界
- SpringBoot 整合ActiveMQ 小Demo
- Excel大家来找茬,两列数据对比找出不同数据
- 阿里传奇工程师多隆的程序世界