ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

forward和redirect的区别是什么?

2022-01-30 20:03:38  阅读:157  来源: 互联网

标签:redirect 区别 Request filter 跳转 forward Servlet Response


             答案:在设计Web应用程序的时候,经常需要将一个系统进行结构化设计,即按照模块来划分,让不同的Servlet来实现不同的功能,例如可以让其中一个Servlet接收用户的请求,另外一个Servlet

来处理用户的请求。为了实现这种程序的模块化,就需要保证在不同的Servlet之间可以相互跳转,而Servlet中主要有两种实现跳转的方式:forward方式与redirect方式。

           forward是服务器内部的重定向,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,而客户端并不知道,因此,在客户端浏览器的地址栏中不会显示转向后的地址,还是原来的地址。

由于在整个定向的过程中用的是同一个Request,因此,forward会将Request的信息带到被定向的JSP或Servlet中使用。

          redirect则是客户端重定向,是完全的跳转,即客户端浏览器会获取到跳转后的地址,然后重新发送请求,因此,浏览器中会显示跳转后的地址。同时由于这种方式比forward方式多了一次网络请求,

所以,forward效率更高。需要注意的是,客户端重定向可以通过设置特定的HTTP头或者写JavaScript脚本实现。图17可以更好地说明它们的区别。

         

        鉴于以上区别,一般当forward方式可以满足需求时,尽可能地使用forward方式。但在有些情况下,例如,需要跳转到一个其他服务器上的资源,则必须使用redirect方式。

       引申:filter的作用是什么?主要实现什么方法?

       filter使用户可以改变一个Request并且修改一个Response。filter不是一个Servlet,它不能产生一个Response,它能够在一个Request到达Servlet之前预处理Request,也可以在离开Servlet时处理

Response。filter其实是一个“Servlet Chaining”(servlet链)。

      一个filter包括:

     1)在Servlet被调用之前截获

     2)在Servlet被调用之前检查Servlet Request

     3)根据需要修改Request头和Request数据。

     4)根据需要修改Response头和Response数据。

     5)在Servlet被调用之后截获。

 

标签:redirect,区别,Request,filter,跳转,forward,Servlet,Response
来源: https://www.cnblogs.com/dtx123/p/15851347.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有