Javaweb Servlet基础学习记录(4)—重定向与请求转发(请求转发)
二、请求转发
请求转发是指将请求再转发到其他地址,转发过程中使用的是同一个request请求,转发后浏览器地址栏内容不变。
请求转发过程图(演示由请求ServletA到ServletB的转发过程):
现实生活举例(图片转载自CSDN博主「阿顾同学」的原创文章,原文链接:https://blog.csdn.net/u010452388/article/details/80398929):
注释:
(1)请求转发的过程发生在服务器内部,对客户端是透明的。服务器只能从当前应用内部查找相应的转发资源,而不能转发到其它应用的资源。
(2)请求转发使用RequestDispatcher接口中的forward()方法来实现,该方法可以把请求转发给另外一个资源,并让该资源对此请求进行响应。
(3)RequestDispatcher接口有以下两个方法:
Forward()方法:将请求转发给其他资源。
Include()方法:将其他资源并入到当前请求中。
代码实现:
通过HttpServletRequest对象来实现,请求转发语法格式如下:
RequestDispatcher dispatcher = request.getRequestDispatcher(String path);
dispatcher .forward(ServletRequest request, ServletRequest response);
其中,path参数用以指定转发的URL,只能是相对路径;request和response参数取值为当前请求所对应的HttpServletRequest和HttpServletResponse对象。
示例:
RequestDispatcher dispatcher = request.getRequestDispatcher("/index.jsp").forward