-
web.xml 的配置查看全部
-
在web.xml中Filter中的初始化参数 设置不被过滤的页面或链接查看全部
-
不太懂的地方查看全部
-
//重定向(走的request) response.sendRedirect(); //转发(走的forward) request.getRequestDispatcher().forward(); 我来说一下为什么sendRedirect会陷入死循环,而getRequestDispatcher.forward不会。 因为前者是使用的过滤器类型是request,访问index.jsp页面时,触发过滤器,重定向到main.jsp,由于过滤器类型是request,所以会继续触发main.jsp的过滤器,所以会陷入死循环。 后者在访问index.jsp的时候,过滤器类型是request,所以会触发过滤器,然后利用转发的方式访问main.jsp,这时候过滤器的类型是forward,而此时web.xml中定义的匹配main的过滤器类型还是request,所以不执行main所匹配的过滤器,因此只执行一次。 转发用forward后,jsp容器内部方法会使页面内容改变,浏览器地址不变; 重定向是直接跳转到新地址; 转发的效率好一些。查看全部
-
public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { System.out.println("Start…FirstFilter…doFilter"); // arg2.doFilter(arg0, arg1); //强制把请求跳转到main.jsp中 HttpServletRequest req = (HttpServletRequest) arg0; HttpServletResponse response2 = (HttpServletResponse) arg1; //web.xml中的两个映射里分别有两个URL //即当跳转到index.jsp和main.jsp时都会执行这个过滤器 /*①重定向 会有死循环 web.xml里走的是Dispatchers里的request * 访问index.jsp时使用过滤器执行下一句跳转到main.jsp 当访问main.jsp时也执行这个过滤器 * 再次执行下面一句跳转到main.jsp……无限循环 */ response2.sendRedirect(req.getContextPath()+"/middle.jsp");//强制把原先的请求跳转到main.jsp中 /*②转发 web.xml里走的是Dispatchers里的forward * 当执行index.jsp的时候执行这个过滤器,然后执行下面的语句 main.jsp和结"End……" * 最后结束过滤器,即web.xml里的第二个重定向并没有使用 */ // req.getRequestDispatcher("main.jsp").forward(arg0, arg1); System.out.println("End…FirstFilter…doFilter"); }查看全部
-
过滤器链的执行过程查看全部
-
过滤器链的执行过程查看全部
-
web.xml的配置查看全部
-
过滤器web.xml配置查看全部
-
过滤器的生命周期查看全部
-
Web.xml文件在过滤器中的配置查看全部
-
过滤器生命周期示意图查看全部
-
过滤器的工作原理查看全部
-
过滤器web.xml配置查看全部
-
333查看全部
举报
0/150
提交
取消