①编写一个过滤器的类实现Filter接口 并且实现其中的方法 着重实现Filter方法
public class MyFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("quick running");
filterChain.doFilter(servletRequest, servletResponse);//这是开启放行 不设置就是进行拦截 像保安一样的作用
}
@Override
public void destroy() {
}
}
②在web.xml文件中进行配置(主要配置要对哪些资源进行过滤)
<filter>
<filter-name>MyFilter</filter-name>
<filter-class>com.itheima.web.MyFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>MyFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
③创建一个拦截的对象
@WebServlet(name = "DemoServlet",urlPatterns = "/demo")
public class DemoServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.getWriter().write("...........");
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doPost(request,response);
}
}
这样在不开启放行的话,访问demo路径是看不到结果的
开启放行的 即可看到结果
filterChain.doFilter(servletRequest, servletResponse);
所以过滤器 顾名思义就是起到过滤的作用