RequestDispatcher对象是用来引用或跳转到其它的JSP或SERVLET。前面文章中使用我使用的是request对象来做的,其实做跳转还可以使用ServletContext对象:
public RequestDispatcher getRequestDispatcher(String url)
public RequestDispatcher getNamedDispatcher(String name)
在使用getRequestDispatcher方法时,一定要注意,后面的URL必须以“/”开头,这个URL是相对于你在WEB上的虚拟路径,而使用getNamedDispatcher方法则后面的参数是在web.xml文件中设置的相应servlet文件的名字。
如:
在web.xml中有如下设置:
<servlet>
<servlet-name>loginServletName</servlet-name>
<servlet-class>com.servlet.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>loginServletName</servlet-name>
<url-pattern>/loginServlet</url-pattern>
</servlet-mapping>
如果在servlet中,用ServletContext取得这个SERVLET资源则用如下语句:
RequestDispatcher d = getServletContext().getRequestDispatcher("/loginServlet");
RequestDispatcher d = getServletContext().getNameDispatcher("/loginServletName");
上面是两个不同的设置方法,但指向的资源是相同的。