Web容器的重定向和转发

重定向和转发都可以将本次请求指向另一个资源。

      比如用户在访问某个页面的时候,检测到用户没有登录,可以使用重定向或转发将本次请求的指向登录界面。

重定向:

      response.sendRedirect(request.getContextPath()+“/login.jsp”);

转发:

           request.getRequestDispatch(“login.jsp”).forward(servletRequest,servletResponse);

     或  request.getRequestDispatch(“login.jsp”).include(servletRequest,servletResponse);

区别:

     重定向走的是Request请求。

     转发走的是forward方法或者include方法。

具体应用场景

      比如在用户访问某页面时,检测到用户没有登录,我们在过滤器中将页面指向login.jsp,如果过滤器是过滤所有jsp请求的话。

     使用重定向则会再次进行过滤,而重定向到login.jsp它还是一个jsp请求,所以还是会过滤……,如此则形成了死循环,除非设置条件跳出。

    使用转发,因为转发走的是forward方法会长include方法(不是Request请求),所以过滤器不会再进行过滤。但是虽然加载的是登录界面,但在地址栏中显示的还是用户输入的地址。

性能:

     在性能方面,通常转发的性能要优于重定向的性能。

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值