RequestDispatcher接口
4 RequestDispatcher接口
在开发种访问到一个web资源后,需要服务器跳转到另一个资源去处理请求,
可以通过重定向sendRedirect方法实现,也可以用RequestDispatcher转发对象
来实现。
得到转发对象:RequestDispatcher fowwardObj=request.getRequestDispatcher(“另一个资源的路径”);
常用方法:
[1].实现请求转发:forwardObj.forward(request,response);
[2].实现请求包含:forwardObj.include(request,response);
<1>请求转发:
特点:发送了一次请求,响应一次,和request域对象配合使用可以实现值传递。
转发路径:转发动作实在服务器内部实现的,所以转发路径不要携带项目名称
例如:
// 在RequestforwardServlet.java中转发请求
//1.获取转发对象,转发到RequestResultServlet
RequestDispatcher rd=request.getRequestDispatcher("/result");
//2.调用转发方法实现转发效果
request.setAttribute("Company","itcast------");
rd.forward(request, response);
// 在RequestResultServlet.java中接收
response.setContentType("text/html;charset=utf-8");
Object obj=request.getAttribute("Company");
String name=obj.toString();
response.getWriter().print("公司名称"+name);
<2>请求重定向
特点:发送了两次请求,响应了两次,不能和request域对象配合使用.
重定向路径:重定向动作实在浏览器端执行的,所以路径需要携带项目名称。
<3>请求包含
特点:发送一次请求,请求包含是在服务器内部完成的。
请求包含路径:在服务器内部完成,路径也不需要携带项目名称.
原理图如下:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?