页面跳转的两种方式,重定向和转发,实例表达啥叫重定向数据丢失了,转发还在

本文深入解析了页面跳转中的重定向与转发概念,对比了两者在客户端与服务器行为上的区别,详细阐述了重定向和转发的实现原理及其各自的特点。

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

页面跳转:

**重定向:**通过 重定向(Redirect)就是通过各种方法将各种网络请求重新定个方向转到其它位置(如:网页重定向、域名的重定向、路由选择的变化也是对数据报文经由路径的一种重定向)。

实现原理:客户端浏览器发送http请求,web服务器接收请求后发送302状态码响应及对应新的location给客户端客户端发现是302请求,则自动再发送一个新的http请求,请求url是新的location,服务器根据此请求并发给客户,在这里的location可以定义到任意的url,既然是浏览器重新发送了请求,则就没有什么request传递的概念了,在客户端浏览器的路径栏显示的是其重定向的路径,客户端可以观察到路径的变化。

特点:

–是客户端的行为

–是浏览器至少做了两次访问请求的

–浏览器的地址发生改变

–两次跳转之间的传输的数据丢失(request范围)

也就是无法从重定向后的页面获取到表单的数值

–可以重定向到任意的url

转发

原理:

特点:

–是服务器行为

–只对浏览器进行一次访问

–浏览器的地址栏不变

–两次跳转之间传递的信息不会丢失

可以从转发后的页面获取到表单的信息

2,3,·····n次转发也能获取到表单的信息

测试代码:

send.jsp

<body>
<form action="receive.jsp" method="post">
姓名:<input type="text" name="username"><br/>
<input type="radio" name="radio" value="chongdingxiang">重定向<br/> 
<input type="radio" name="radio" value="zhuanfa">转发<br/> 
<input type="submit" value="提交"> 
</form>
</body>

receive.jsp

<body>
<%
String username=request.getParameter("username");
String radio=request.getParameter("radio");
System.out.println(username);
if(radio.equals("chongdingxiang")){
	response.sendRedirect("chongdingxiang.jsp");
}else{
	request.getRequestDispatcher("zhuanfa.jsp").forward(request, response);
}
%>
</body>

chongdingxiang.jsp

<body>
重定向的结果
<% String username=request.getParameter("username"); %>
username:<%=username %>
</body>

zhuanfa.jsp

<body>
转发的结果:
<% String username=request.getParameter("username"); %>
username:<%=username %>
</body>

输入
在这里插入图片描述
输出:重定向
在这里插入图片描述输出:转发
在这里插入图片描述

路径问题:

绝对路径:在不同网站之间的跳转,比如:http://www/baidu.com/aaa/1.jpg

相对路径:用在同一个网站中,aaa/1,jpg

根路径:根指定就是服务器/day12web1/loginservlet 若在浏览器中使用/表示http://localhost:8080/

/如果是在服务器中使用的话表示,/day12web1 “”/“表示我的项目”

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值