请求转发(Forward)是通过RequestDispatcher对象的forward(HttpServletRequest request, HttpServletResponse response)方法来实现的。RequestDispatcher可以通过HttpServletRequest的getRequestDispatcher()方法获得。例如,下面的代码跳转到另一个Servlet:
RequestDispatcher dispatcher = request.getRequestDispatcher(“/Login_Servlet “);
dispatcher.forward(request, response);
上述的代码页可以合并成一行代码,合并成一行代码的格式如下所示:
request.getRequestDispatcher(“/Login_Servlet “).forward(request, response);
getRequestDispatcher()方法的参数必须为以“/”开始,“/”表示本Web应用程序的根目录。如果要跳转到的Servlet为http://localhost:8080/study_servle/Method_Service,则参数应为“/Method_Service”。
Forward是MVC框架中常用的一种技术。Forward不仅可以跳转到本应用的另一个Servlet,JSP页面,也可以跳转到另外一个文件,甚至WEB-INF文件夹下的文件。其中跳转到Servlet与JSP页面是最常见的。框架中常使用一个Servlet
集中处理请求然后跳转到响应的Servlet,或者在Servlet中处理业务逻辑,然后跳转到JSP页面中显示处理结果。
forward是最常用的方式。在Struts、WebWork等MVC框架中,都是用Servlet来处理用户请求,把结果通过request.setAttribute()放到request中,然后forward到JSP中显示。