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过滤器简单实例
最新推荐文章于 2022-05-15 13:14:17 发布