转发与重定向

摘要:
对于两个请求,tomcat创建两个请求来完成跳转功能。选择重定向和转发:设置的值可以在其他servlet或资源中使用。是否修改同一浏览器地址栏中的重定向:修改,查看跳转后页面的内容转发:不修改,查看转发后最后一个servlet响应请求设置的值,是否共享重定向:数据不共享转发:数据共享

重定向:重新确定请求方向
    发送者:服务器 --> 响应(response)浏览器
    执行者:浏览器 --> 重新请求
  转发:当前请求未完成,服务器调用另一个程序继续完成整个请求
    服务器:当前程序需要获得请求调度器 RequestDispatcher
    forward:当调度器,协调多个servlet时,此方法返回最后一个servlet的页面输出内容。
  对比
    何时使用
      重定向:可以指定当前web项目的URL,也可以指定其他web资源
      转发:只能指定当前的web项目URL
    确定使用
      重定向:在第一次请求中设置值,在重定向后不能获取。两次请求,tomcat创建了两个request完成跳转功能,选重定向
      转发:设置的值可以在其他servlet或资源中使用。多个servlet需要传递数据时,现在转发。
   总结:
    请求次数
      重定向:请求2次,tomcat创建了两个request对象
      转发:请求1次,tomcat创建了2个request对象
      request --> org.apache.catalina.connector.RequestFacade -- HttpServletRequest --ServletRequest
      request --> org.apache.catalina.core.ApplicationHttpRequest
        class ApplicationHttpRequest extends HttpServletRequestWrapper {
        public class HttpServletRequestWrapper implements HttpServletRequest {
        ApplicationHttpRequest -- HttpServletRequestWrapper -- HttpServletRequest
        将第一个request中的内容,拷贝给第二个request。值相同
    浏览器地址栏是否修改
      重定向:修改,看到跳转后页面的内容
      转发:没有修改,看到的转发后最后一个servlet响应的内容
    request设置的值,是否共享
      重定向:数据不共享
      转发:数据共享

免责声明:文章转载自《转发与重定向》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇RGBColor类定义小米手机_如何打开开发者模式?下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

grep多条件查找"与","或"

这里以jps命令为例jps查看全部的jvm进程"与"查找下图是所有jvm进程如果想查找256891ThriftServer服务用"与"查找可以理解为是条件查找命令:jps|grep-eer|grep-eT"或"查找方法一:grep-E'A|B'和grep-eA-eB方法二:egrep'A|B'方法三:awk'/A|B/'...

oracle 在sql中显示blob的字符串

最近在用oracle的过程中用到了对blob字段模糊查询的问题,对oracle来说,我并不是高手,找了很多的资料终于能够查出来了。以上只是自己做了个简单的处理,相信肯定有更好的方法,希望大家帮忙,但是感觉dbms_lob函数下的方法真的很好用。...

Selenium操作示例——鼠标悬停显示二级菜单,再点击二级菜单或下拉列表

这两天在python中玩selenium时,我遇到了一个问题,那就是鼠标移动到页面上的一个按钮或菜单,二级菜单或下拉菜单自动弹出,然后二级菜单或者下拉列表自动点击。...

PNETLab模拟器部署及使用配置

为了提高虚拟网络的仿真程度,您可以运行IOL(Cisco IOSonLinux)、Dynamips、Quem和其他图像来支持在线实验拓扑下载。...

【转载】 银河麒麟V10系统安装U盘制作

在制作U盘安装盘的过程中,Kylin系统的ISO映像文件比较大,因此很耗时。创建完成后,“写入硬盘映像”对话框将自动关闭。...

vue升级Babel支持可选链和合并空值运算符

据我所知,无论是webpack项目还是vite项目都需要使用到babel来编译文件。currentItem:tips;}//template使用传入对应的取值地址:string{{text_filter}}其他可玩的ES新特性通过babel的官网,我们可以看到babel支持的"ES新特性"参考:babeljs.io/docs/en/plu…挑几个有意思的说明...