请求转发和重定向

一、

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的特殊情况)

相关推荐
Minner-Scrapy23 天前
Web3.py 入门笔记
python·web3·web3.py·eth·request
老友@25 天前
在 Spring Boot 中使用异步线程时的 HttpServletRequest 复用问题
java·spring boot·后端·tomcat·多线程·request·异步线程
码农研究僧25 天前
UniApp 中封装 HTTP 请求与 Token 管理(附Demo)
vue3·uniapp·js·token·request
问道飞鱼2 个月前
【知识科普】HTTP相关内容说明
websocket·http·请求转发·请求重定向
无名之逆3 个月前
搭建SSL邮件服务器
开发语言·网络·网络协议·http·https·ssl·request
轨迹H3 个月前
DVWA靶场Open HTTP Redirect (重定向) 漏洞所有级别通关教程及源码审计
网络协议·渗透测试·dvwa·重定向·web漏洞
KevinRay_3 个月前
命令行之巅:Linux Shell编程的至高艺术(中)
linux·运维·服务器·重定向·shell编程
盼兮*3 个月前
Python调用星火认知大模型API(流式传输)
开发语言·python·flask·request
不修×蝙蝠3 个月前
搭建Tomcat(六)---Response的实现
java·服务器·tomcat·response
发现你走远了4 个月前
访问http网页强制跳转到了https的解决办法
网络协议·http·https·重定向