过滤器本身不生成任何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