请求转发
2022-05-19 15:54:43 9 举报
AI智能生成
Java请求转发
作者其他创作
大纲/内容
请求转发的介绍
<ul><li><span style="font-size: inherit;"><b><font color="#ff9800"> </font><font color="#ff0000">请求转发(Forward)</font></b>是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,</span></li></ul>然后把这些内容再发给浏览器.浏览器根本不知道服务器发送的内容从哪里来的,因为<br>这个跳转过程实在服务器实现的,并不是在客户端实现的所以客户端并不知道这个跳<br>转动作,所以它的地址栏还是原来的地址.
工作原理
1.用户第一次通过手动方式要求浏览器访问OneServlet
2.Oneservlet工作完成后,通过当前的请求对象代替浏览器向Tomcat发送请求申请调用TwoServlet
3.Tomcat接收请求后,自动调用TwoServlet来完成剩余的任务
图解
<span style="font-size: inherit;"><b>简单说:就好比你到A家门口向A借钱,但是A没有钱,B正好在A家,A向B借钱,然后把借来的钱给你。<br></b></span>你还不知道这钱是谁的
操作
1.通过当前请求对象生成资源文件申请报告对象
RequestDispathcher report = request.getRequestDispatcher("/资源文件名")
2.将报告对象发送给Tomcat<br>
report.forward(request,response);
优点
1.无论本次请求涉及到多少servlet,浏览器只是发送一次请求
2.Servlet之间调用发生在服务器计算机上,节省服务器与浏览器之间往返次数<br> 增加处理服务速度
例如:request.getRequestDispatcher("1.jsp").forward(request,response);
特征
请求次数
在请求发送过程中,浏览器只是发送一次请求
请求地址
只能向tomcat服务器申请调用当前网站下的资源文件地址
请求方式
根据客户端而定:用户第一发起什么请求,后面的转发就是什么请求
总结
(1)浏览器只发送了一次请求<br><br>(2)浏览器的地址栏不会发生改变<br><br>(3)请求过程中只产生一个request和response对象<br><br>(4)几个Servlet共享同一个request和response对象<br><br>(5)通过 request.getRequestDispatcher("xxx").forward(request,response)方式实现<br><br>
分支主题
0 条评论
下一页