servlet请求转发的区别
【转】
JavaWeb 重定向与请求转发的区别和执行流程(图解分析)
JavaWeb——请求转发与请求重定向
https://blog.csdn.net/weixin_43490440/article/details/100920817
请求转发概念:
浏览器的请求发送给组件1,组件1经过一些处理之后,将request和response对象“传递”给组件2,由组件2继续处理,然后输出响应(当然,也可以继续向其他组件“传递”),这个传递的过程称之为“转发”。
请求转发实际意义:
一个servlet负责一个功能,比如一个servlet只是负责登陆界面的展示 ,另一个负责登陆状态的判断,则登陆状态判断为 否,则就要回到登陆界面,即需要转发会负责登陆界面展示的servlet 。
req.getRequestDispatcher("servlet别名").forward(req.resp);
作用: 实现了多个servlet联动操作的处理请求 避免了代码冗余 让servlet职责更明确。
比如:去公安局盖章 ,业务员拿走,分别让干事、领导盖章, 干事 领导就分别为一个servlet, 这样每个人权责明确 ,每个人可 以请求转发
特点:一个请求 浏览器的地址栏信息不变 就是在浏览器看来 处理他的还是第一个servlet
注意:请求转发后 如果下边还写了代码 还会执行 但是没有意义 一般直接return即可
基本使用方法:
1、servlet请求转发到另一个servlet,并传递数据 ,一般需要以下3个步骤
(1)、通过request.setAttribute("key",value)给request加信息。
(2)、通过request.getRequestDispather(目标servlet).forward(request,response) 转发到另一个servlet.
(3)、在另一个servlet中通过request.getAttribute("key")来获取附加信息的值。
请求转发实例
①:A对B说,帮忙拿下快递
②:第二步,B没有空,直接找让C帮A拿下快递
③:C拿到了快递并返回给A
请求转发-流程图、代码、结果
1.流程图
2.1代码BoyServlet
2.2代码GirlServlet
2.3web.xml文件