Filter概述
过滤器Filter是 JavaWeb三大组件(Servlet Filter Listener)之一,它能够对Web资源进行拦截,做一些处理后再交给下一个过滤器或servlet处理。
Filter执行流程
Filter的使用
使用Filter需要创建一个类,实现javax.servlet.Filter接口,并重写里面所有方法
init():服务器启动时,就会创建该Filter,并会执行init方法,进行初始化。
destory():服务器关闭,过滤器被销毁时会执行的方法。
doFilter():该方法是过滤器的核心方法,用户的请求会进入该方法,我们可以编写代码逻辑进行请求的过滤,如果允许请求通过,执行 chain.doFilter(req, resp),该方法会给请求放行,过滤器接收到返回结果后,会执行chain.doFilter()方法之后的代码。
如果不允许通过,不写 chain.doFilter(req, resp)即可,执行执行完当前方法后便会自动返回给前台。
代码示例:
定义一个Serlvet,请求路径为/MyServlet
@WebServlet("/MyServlet")
public class MyServlet extends HttpServlet {
protected void doPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
System.out.println("MyServlet执行!!");
}
protected void doGet(javax.servlet.http.HttpServletRequest request