6、SERVLET API中forward() 与redirect()的区别?

来源:互联网 发布:linux可以做什么 编辑:程序博客网 时间:2024/05/21 10:43

 答题思路:

实质:控制权的转向----完全的跳转

   特点:效率:forward()高、

        安全:forward()

   转到其他服务器,必须用sendRedirect()方法

 

:前者仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;

后者则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。

这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,前者更加高效,在前者可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用

sendRedirect()方法。


        可以用一个比喻来形容,可以比较直观、好理解。例子:一个班级,假设是一班,有一个同学王遇到了一个问题,然后,请教老师,老师不会,但知道同班的李同学会,就把问题抛给了李同学,然后得到了答案,把答案返回给了王,但王也不知谁是李同学解答的。这就是forward()方法。

       如果,同学王又遇到了问题,问老师,老师还是不会,知道同班的同学都不会,但知道,二班张某人会,然后,老师告诉同学王,给他一个地址,让他去找张某,这就是redirect()方法

      一班、二班,其实是服务器。


0 0
原创粉丝点击