MeloZZZ
2017-03-06 16:59
为什么会进入死循环?重定向时,进入main.jsp页面,就会调用第二个映射。难道是因为和request有关系吗?但是重定向用的是response方法啊?请大神告知???????????
request.getRequestDispatcher(); 请求转发
response.sendRedirect(); 请求重定向
首先你要明白 请求转发实际只请求一次 对象会保存 浏览器的地址不会改变
请求重定向实际请求两次 对象不会保存 浏览器的地址会改变
这也就解释了为什么 用请求重定向 会死循环 它每次都会向你发送请求 而过滤器的dofilter方法 每次都重定向到main.jsp页面
当老师访问index,jsp时,就会调用一次过滤器,同时也会执行过滤器内的语句,执行重定向语句时等价于服务器告知用户界面重新请求main.jsp页面,如此便会再次调用过滤器,同样还会执行过滤器内的语句,由此产生循环,而转发,用户并不知道服务器执行了转发操作所以地址栏内的地址没有变,过滤器好像是只过滤用户请求的,我是这样理解的。
重定向相当于两次请求,所以再次请求就会调用过滤器
Java Web开发技术应用——过滤器
70492 学习 · 258 问题
相似问题