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");
上面是兩個不同的設置方法,但指向的資源是相同的。