關于java過濾器
老師的代碼中沒有執(zhí)行?chain.doFilter(request, response);那是怎么放行的?
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
System.out.println("start----doFilter--FirstFilter");
// ?chain.doFilter(request, response);
HttpServletRequest req =(HttpServletRequest) request;
HttpServletResponse response2 =(HttpServletResponse) response;
//重定向
//response2.sendRedirect(req.getContextPath()+"/mian.jsp");
//轉(zhuǎn)發(fā)
req.getRequestDispatcher("main.jsp").forward(request, response);
// req.getRequestDispatcher("main.jsp").include(request, response);
System.out.println("end------doFilter--FirstFilter");
}
2017-05-08
這里不是放行,是生成進行請求轉(zhuǎn)發(fā)。如果沒有forward過濾器,那么生成的forward請求將直接訪問資源。如果還有forward過濾器,再重新進行過濾判斷。