过滤器本身不生成任何ServletRequest对象和ServletResponse对象,它为组件提供如下的方法 ? ?
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; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @WebFilter(urlPatterns="/api/order/*") public class MyFilter implements Filter { public void doFilter(ServletRequest req, ServletResponse res,FilterChain filter) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) req;//一般发布为http应用,可以直接转换为HttpServletRequest HttpServletResponse response = (HttpServletResponse) res;//一般发布为http应用,可以直接转换为HttpServletResponse //TODO 前置预处理1 filter.doFilter(request, response); //TODO 后置处理 } @Override public void init(FilterConfig config) throws ServletException { //做一些启动配置 } @Override public void destroy() { //做一些容器销毁时垃圾回收 } }?如果是/api/order/开头的请求,都会经过这个拦截。
原文:http://haoran-10.iteye.com/blog/2246586