请求转发和重定向

一、

1.请求转发:

java 复制代码
request.getRequestDispatcher(URL地址).forward(request, response)

【请求转发是一种服务器行为,只能转发本项目内的资源,唯独外部的可以请求到WEB-INF内的文件】

  • 服务器内部行为,客户端不知道页面的实际路径。
  • 请求和响应对象在服务器内部传递,地址栏不变。
  • 可以共享请求数据,如请求参数和属性。

【请求转发的流程图】

2.重定向:

java 复制代码
response.sendRedirect(URL地址)

【重定向是一种服务器指导的客户端行为,客户端发起第一个请求,请求被服务器接收,服务器会返回给客户一个新的地址,客户端接收到新的地址后会根据新地址去发起新的请求

重定向可以跳转到任意网站内的资源,但是访问不到web-INF内的文件】

  • 客户端行为,服务器告诉客户端去访问另一个URL。
  • 地址栏会变成新的URL。
  • 新的请求会丢失原有请求的数据,需要通过URL参数或会话传递。

【重定向的流程图】

二. 重定向和请求转发的区别

1、重定向是两次request请求,转发是一次request请求

2、重定向之后地址栏上的地址会发生变化,变化成第二次请求的地址,转发之后地址栏上的地址不会变化,还是第一次请求的地址(参见流程图)

3、转发是服务器行为,重定向是客户端行为。重定向时浏览器上的网址改变 ,转发是浏览器上的网址不变

4、重定向时的网址可以是任何网址,转发的网址必须是本站点的网址(注意WEB-INF的特殊情况)

相关推荐
拾光Ծ2 天前
【Linux】一切皆文件:深入理解文件与文件IO
linux·c语言·运维开发·系统编程·重定向·linux开发·文件io
_OP_CHEN4 天前
【Linux系统编程】(二十)揭秘 Linux 文件描述符:从底层原理到实战应用,一篇吃透 fd 本质!
linux·后端·操作系统·c/c++·重定向·文件描述符·linux文件
SunnyRivers10 天前
深入理解Linux后台命令
linux·后台运行·重定向·nohub
xcLeigh11 天前
Python高效数据采集实战:基于IPIDEA代理的全方位教程
爬虫·python·数据采集·代理·request·ipidea
stella·14 天前
后端二进制文件,现代前端如何下载
前端·ajax·状态模式·axios·request·buffer·download
heartbeat..24 天前
JavaWeb 入门 - HttpServletResponse 响应对象 详解
java·网络·http·web·response
gis分享者24 天前
请解释 Shell 脚本中的重定向(redirection)操作及其用途(中等)
shell·脚本·重定向·操作·用途·redirection
xuchaoxin137525 天前
Bash 重定向完全指南
bash·重定向
冉佳驹1 个月前
Linux ——— 文件操作与缓冲机制的核心原理
linux·重定向·用户级缓冲区·open的返回值·进程中的当前路径
heartbeat..1 个月前
JavaWeb 核心:HttpServletRequest 请求行、请求头、请求参数完整梳理
java·网络·web·request