重定向与请求转发的区别

本文详细介绍了重定向与请求转发在Web应用中的定义和区别。重定向涉及两次请求和响应,地址栏显示新地址,不支持访问WEB-INF资源;请求转发仅需一次请求和响应,地址栏保持不变,且可访问WEB-INF内资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

重定向与请求转发的区别


一、重定向、请求转发的定义

1. 重定向(Redirect)

① 客户端浏览器向Web应用服务器端发送一个请求

② Web服务器端使用HttpServletResponse的sendRedirect()方法将结果结果中头信息内HTTP状态码为302,Location响应报头域中保存响应回来的地址返回客户端浏览器;

③客户端浏览器收到服务器端结果后解析其头部信息,然后自动按照头部指定地址以GET方式再次向Web应用服务器端发请求,此时地址栏URL发生变化;

④服务器端接收到新的请求再将结果返回至客户端浏览器,客户端浏览器解释执行返回结果并将执行结果显示给用户,至此该过程结束。


2. 请求转发(Forward)
①这里的“请求”是名词
②请求转发指客户端浏览器向Web服务器端发送请求,服务器端收到请求后进行相应处理后再将该请求转发到另外的资源(即这一“转发”操作是在Web服务器端执行的),服务器端对该资源进行处理后反馈给客户端。


注:JSP执行过程,如图

在这里插入图片描述


二、重定向与请求转发的区别

①重定向的方式客户端和服务器端共执行了两次请求和两次响应;
    请求转发的方式,客户端和服务器端只执行了一次请求和一次响应;
②重定向浏览器地址栏显示的是第二次访问的新地址;
    请求转发浏览器地址栏显示的是第一次访问的原地址
③请求转发不可以访问外网;,而重定向没有这个限制。
④重定向无法再新的页面获取request.setAttribute中保存的数据,请求转发可以。
⑤Web项目中WEB-INF文件夹是最安全的目录,该目录内的资源只能通过请求转发获取,重定向的方式无法获取。


三、举例说明

JSP页面代码
<!-- index.jsp -->
<%@ page language="java" contentType="text/html; charset=Utf-8" pageEncoding="Utf-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
		<title></title>
	</head>
	<body>
			
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值