转发和重定向的区别和使用

重定向:

1、工作原理:

用户第一次通过手动方式通知浏览器访问OneServletOneServlet工作完毕后,将TwoServlet地址写入到响应头location属性中,导致Tomcat302状态码写入到状态行。在浏览器接收到响应包之后,会读取302状态,此时浏览器自动根据响应头中location属性地址发起第二次请求,访问TwoServlet去完成请求中剩余的任务。

2实现命令:

response.sendRedirect("/网站名/资源文件名")

将地址写入到响应包中响应头中location属性

3、特征:

1)请求地址:

既可以把当前网站内部的资源文件地址发送给浏览器("/网站名/资源文件名")

也可以把其他网站资源文件地址发送给浏览器(http://ip地址:端口号/网站名/资源文件名)

2)请求次数

浏览器至少发送两次请求,但是只有第一次请求是用户手动发送的。后续都是浏览器自动发送的。

3)请求方式:

重定向解决方案中,通过地址栏通知浏览器发起下一次请求,因此通过重定向解决方案调用的资源文件接受的请求方式一定是Get

4)缺点:

重定向解决方案需要在浏览器与服务器之间进行多次往返,大量时间消耗在往返的次数上,增加用户等待服务时间。

 

请求转发:

1、原理:用户第一次通过手动方式要求浏览器访问OneServletOneServlet工作完毕后,通过当前的请求对象代替浏览器向Tomcat发送请求,申请调用TwoServletTomcat在接收到这个请求之后,自动调用TwoServlet来完成剩余任务。

2、实现命令:请求对象代替浏览器向Tomcat发送请求。

1) 通过当前请求对象生成资源文件申请报告对象

RequestDispatcher report=request.getRequestDispatcher(“/资源文件名”); //一定要以”/”为开头

2) 将报告对象发送给Tomcat

report.forward(当前请求对象,当前响应对象)

3、优点:

1) 无论本次请求涉及到多少个Servlet,用户只需要手动通过浏览器发送一次请求。

2) Servlet之间调用发生在服务端计算机上,节省服务端与浏览器之间往返次数,增加处理服务速度。

4、特征:

1) 请求次数

 在请求转发过程中,浏览器只发生一次请求。

2) 请求地址

只能向Tomcat服务器申请调用当前网站下的资源文件地址

request.getRequestDispatcher(“/资源文件名”); //不要写网站名

3) 请求方式

在请求转发过程中,浏览器只会发送一个Http请求协议包。参与本次请求的所有Servlet共享同一个请求协议包,因此这些Servlet接受的请求方式与浏览器发送的请求方式保持一致

 

 

重定向与转发的区别:

posted @   你的吴同学  阅读(440)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示