页面跳转的两种方式
2022-11-24 17:31:07 5 举报
AI智能生成
。。。。。。。。。。
作者其他创作
大纲/内容
font color=\"#ff0000\
介绍
用户第一次通过手动方式通过浏览器访问OneServlet,OneServlet工作完毕后,将TwoServlet地址写入到响应头, localhost属性中,导致tomcat将302状态码写入到状态行。在浏览器接收到响应包后,会读取到302状态,此时浏览器自动根据响应头中的localhost属性地址发起第二次请求,访问TwoServlet去完成请求中剩余任务。
就好比:你向A去借钱,但是A没有钱,A告诉你B有钱,然后你自己在去向B借钱
图解
工作原理
response.sendRedirect(\"请求地址\");将地址写入到响应包中的响应包中
servlet的实现命令
浏览器地址栏会发生变化请求次数: 浏览器至少发送两次请求,但是只有第一次请求是用户手动发送的,后续请求都是浏览器自动发送的请求方式:重定向解决方案中,通过地址栏通知浏览器发起下一次请求,第一次是用户发起的可以是GET或者POST,但是后面的请求都是GET请求 (很简单验证,在get|post输出不同的内容,看控制台输出什么)
特点
重定向方案需要在浏览器与服务器之间进行多次往返,大量事件消耗在往返上,增加用户等待服务时间
缺点
(1) 浏览器发送了两次请求 (2)浏览器的地址发生改变 (3)请求过程产生了两个request和两个response请求 (4)两个servlet不共享同一个request和response (5)通过response.sendRedirect(url)方式实现
总结
重定向
font color=\"#ff0000\
请求转发的介绍
1.用户第一次通过手动方式要求浏览器访问OneServlet
2.Oneservlet工作完成后,通过当前的请求对象代替浏览器向Tomcat发送请求申请调用TwoServlet
3.Tomcat接收请求后,自动调用TwoServlet来完成剩余的任务
简单说:就好比你到A家门口向A借钱,但是A没有钱,B正好在A家,A向B借钱,然后把借来的钱给你。你还不知道这钱是谁的
RequestDispathcher report = request.getRequestDispatcher(\"/资源文件名\")
1.通过当前请求对象生成资源文件申请报告对象
2.将报告对象发送给Tomcat
操作
1.无论本次请求涉及到多少servlet,浏览器只是发送一次请求
2.Servlet之间调用发生在服务器计算机上,节省服务器与浏览器之间往返次数 增加处理服务速度
例如:request.getRequestDispatcher(\"1.jsp\
优点
在请求发送过程中,浏览器只是发送一次请求
请求次数
只能向tomcat服务器申请调用当前网站下的资源文件地址
请求地址
根据客户端而定:用户第一发起什么请求,后面的转发就是什么请求
请求方式
特征
(1)浏览器只发送了一次请求(2)浏览器的地址栏不会发生改变(3)请求过程中只产生一个request和response对象(4)几个Servlet共享同一个request和response对象(5)通过 request.getRequestDispatcher(\"xxx\
只能向tomcat服务器申请调用当前网站下的资源文件地址,在不同web应用程序之间访问就无解了
请求转发
重定向的速度比转发慢,因为浏览器还得发出一个新的请求,如果在使用转发和重定向都无所谓的时候建议使用转发。
因为转发只能访问当前WEB的应用程序,所以不同WEB应用程序之间的访问,特别是要访问到另外一个WEB站点上的资源的情况,这个时候就只能使用重定向了。
应用场景
自由主题
外框
页面跳转的两种方式
0 条评论
回复 删除
下一页