package com.test.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; public class FirstFilter implements Filter{ //FilterConfig可用于访问Filter的配置信息 private FilterConfig config; @Override public void destroy() { this.config = null; } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { //获取ServletContext对象,用于记录日志 ServletContext context = this.config.getServletContext(); long before = System.currentTimeMillis(); HttpServletRequest req = (HttpServletRequest) request; HttpServletResponse resp = (HttpServletResponse) response; HttpSession session = req.getSession();; String url = req.getRequestURI(); String queryString = req.getQueryString(); String fullPath = url + queryString; if (fullPath.equals(session.getAttribute("fullPath"))) { long middleTime = System.currentTimeMillis(); if (middleTime - (Long.parseLong(session.getAttribute("before").toString()))<5000) { System.out.println("重复提交"); } } session.setAttribute("before", before); session.setAttribute("fullPath", fullPath); // System.out.println("before invoke firstFilter's chain.doFilter() .."); chain.doFilter(req, resp); // System.out.println("after invoke firstFilter's chain.doFilter() .."); long after = System.currentTimeMillis(); long sumLoad = after - before; System.out.println("1.请求被定位到" + fullPath + "所花的时间为: " + sumLoad); } @Override public void init(FilterConfig config) throws ServletException { this.config = config; System.out.println("firstFilter init()..."); } private HttpServletRequest request; public boolean getParameter() { //如果是以post方式提交数据的,就直接返回获取到的值 if(this.request.getMethod().equalsIgnoreCase("post")) { return true; }else { return false; } } }
filter过滤器简单实例
猜你喜欢
转载自blog.csdn.net/tikaber/article/details/78778884
今日推荐
周排行