`

Web开发7:请求转发与重定向的区别

 
阅读更多

需注意的是:所谓重定向是指:A.JSP页面发送请求到Servlet,Servlet再重定向到另一个B.JSP页面,这其中的重定向到另一个页面所做的动作是-------从Servlet返回到之前请求的A.JSP页面,再由A发送请求到B.JSP如下图所示

 

重定向与请求转发的区别是:request对象中保存的参数与attribute值在请求转发过程中都不会丢失,因为它们是同一个对象。而由于重定向需要重新返回到之前的JSP页面中重新发起request请求,所以之前保存的值都会丢失。

 

补充:

 

 

请求重定向与请求转发的比较,HttpServletResponse.sendRedirect方法和RequestDispatcher.forward方法都可以让浏览器获得另外一个URL所指向的资源,但两者的内部运行机制有很大的区别。

 

1.RequestDispatcher.forward方法只能将请求转发给同一个Web应用中的组件,HttpServletResponse.sendRedirect不仅可以重定向到当前应用程序的其他资源,还可以重定向到痛一个站点上的其他应用程序的资源,甚至是使用绝对URL重定向到其他站点的资源。对于sendRedirect如果传递的URL以"/"开头,他是相对于整个Web站点的根目录;对于forward如果传递的URL以"/"开头,它是相对于当前Web应用程序的根目录。

 

2.sendRedirect对浏览器做出的响应是重新发出对另外一个URL的访问请求,forward在服务器端内部将请求转发给另外一个资源,浏览器只知道发出了请求并得到了响应结果

 

3.forward的调用者与被调用者之间共享相同的request对象和response对象,他们属于痛一个访问请求和响应过程;sendRedirect的调用者与被调用者使用各自的request和response对象,属于两个独立的访问请求和响应过程。

 

分享到:
评论

相关推荐

    基于框架的Web开发-处理数据模型、转发和重定向.docx

    5.4 处理模型数据、转发和重定向 Spring MVC通过@RequestMapping注解将请求引导到处理方法上,并可以将请求消息绑定到方法的参数上。将请求绑定到方法上只是处理的第一步,方法还要执行相应的逻辑运算,产生模型数据...

    页面转向与重定向

    请求转发和重定向在页面跳转时数据的传递,为什么重定向会丢失数据,之间到底有什么区别。

    Java Web应用开发:关于路径.docx

    是服务端转发请求给服务端另一组件,或者包含另一服务端组件的路径。 1.2 绝对路径和相对路径 1.2.1 绝对路径 绝对路径以“/”开头,(如果是http://****这种完整的地址也算绝对路径,这种路径容易理解,我们不讨论...

    深入体验Java Web开发内幕

    5.1 准备实验环境  5.2 HttpServletResponse简介  5.3 产生响应状态行  5.4 构建响应消息头  5.5 响应消息头的实用案例  5.6 创建响应正文  5.7 请求重定向与请求转发  5.8 思考与实践...

    Java Web编程宝典-十年典藏版.pdf.part2(共2个)

    全书分4篇,共24章,其中,第1篇为技能学习篇,主要包括Java Web开发环境、JSP语法、JSP内置对象、Java Bean技术、Servlet技术、EL与JSTL标签库、数据库应用开发、初识Struts2基础、揭密Struts2高级技术、Hib锄劬e...

    JavaWeb实战开发

    请求方式的编码问题、response、请求转发和重定向、cookie、session执行机制、session共享问题? ? ?4.session与cookie问题及application、cookie补充说明及四种范围对象作用域? ? ?5.JDBC原理及使用Statement访问...

    Servlet与JSP核心编程第2版

    13.3 使用jsp:forward转发请求 13.4 包含使用java插件的applet 第14章 javabean组件在jsp文档中的应用 14.1 使用bean的原因 14.2 bean是什么 14.3 bean的应用:基本任务 14.4 示例:stringbean 14.5 ...

    cpp-Nginx静态资源重定向模块

    本模块可以将当前域下静态文件(css, js, img)重写URL来转发至另一台web服务器请求.

    java面试题

    答:Servlet与CGI的区别在于Servlet处于服务器进程中,它通过多线程方式允许其service方法,一个实例可以服务于多个请求,并且其实例一般不会被销毁,而CGI对每个请求都产生新的进程,服务完后就销毁,所以效率上...

    Charles替换文件.jar

    正常情况下,Chrome DevTool已经满足了日常web开发的需求,但是有的特性:编辑request的参数、重定向request请求的资源、编辑response的数据,ChromeDevTool就很蛋疼了,而且查看和调试移动端资源时候Chrome也并不...

    Url重写篇视频------本讲将通过实例比较ASP.NET下的三种典型URL重写方案

    尽管这样的default.aspx页面实际上永远不会被真正执行,但是有他们的帮助,就能让IIS顺利地将页面请求转发至ASP.NET解析器,从而,使得基于HTTPModule的URL重写规则,被执行。 好了,创建这两个目录及default.aspx...

    asp.net知识库

    Web开发: 使用URL重写WEB主题切换 如何在Asp.Net1.1中实现页面模板(所谓的MasterPage技术) Tool Tip 示例(FILTER版) Tool Tip示例 (htc版) 一个.net发送HTTP数据实体的类 按键跳转以及按Enter以不同参数提交,及...

    Blackhole:适用于桌面和移动设备的精英 Web 代理调试器

    可以配置各种替换/重定向方案,以便更轻松地进行前端开发。 查看了解更多详情。 要求 这个项目是用python3.3构建的。 不保证其他版本有效。 不需要安装第三部分库。 适用于 windows 和 mac 去做 主机模块实用...

    halosgho.st:回购支持我的主页

    堆栈用作构建Web服务器和页面逻辑的库终止代理服务器用于TLS证书续订的ACME协议客户端所有这些都在使用进行流量重定向和转发的Arch Linux上运行流量重定向和转发lwan不正式支持在外部可见端口上运行,并且它仍然是...

    JavaWeb之Servlet精讲实战课程

    本课程是javaee和大数据开发的基础课程,讲述了Servlet中Servlet创建过程,Request请求以及Response中各种响应头的介绍,以及乱码的各种处理方式,以及刷新重定向转发等。对servlet中的session和cookie做了着重讲解,...

    Linux高性能服务器编程

    内容简介《Linux高性能服务器编程》是Linux服务器编程领域的经典著作,由资深Linux软件开发工程师撰写,从网络协议、服务器编程核心要素、原理机制、工具框架等多角度全面阐释了编写高性能Linux服务器应用的方法、...

    深入解析Windows操作系统中文.part2.rar

    检查与进程、线程和作业相关的数据结构和算法;观察Windows如何管理虚拟内存和物理内存;理解NTFS的操作和格式,诊断文件系统访问问题;从上往下查看Windows的网络栈,包括映射、API、名称解析和协议驱动程序;诊断...

    Java学习笔记-个人整理的

    \contentsline {chapter}{Contents}{2}{section*.1} {1}Java基础}{17}{chapter.1} {1.1}基本语法}{17}{section.1.1} {1.2}数字表达方式}{17}{... {16}Web基础}{215}{chapter.16} {16.1}HTML}{215}{section.16.1} {...

Global site tag (gtag.js) - Google Analytics