ServletRequest.getRequestDispatcher和ServletContext.getRequestDispatcher的区别。

本节介绍以下几种跳转方法。

1.用RequestDispatcher跳转:

马 克-to-win: javax.servlet.RequestDispatcher是Sun公司编写的一个Interface,顾名思义,它可以把用户请求"a资源"的 request派遣(dispatch)到"b资源"上,从而实现跳转。(本来人家要访问'a资源",你的程序却让人家自动的跳转到"b资源"上。) 注意:RequestDispatcher有两种形式:这两种形式都能达到跳转的目的。一种是 ServletRequest.getRequestDispatcher(String url)。一种是ServletContext.getRequestDispatcher(String url)。但正常来讲,二者都只能访问同一web应用的资源。见下面理论论述和实验。
马克-to-win:注意以下两者的而区别:ServletContext.getRequestDispatcher(String
url)中的url只能使用绝对路径; 而ServletRequest.getRequestDispatcher(String
url)中的url可以使用相对路径(两个资源在同一个目录下,所以省去路径),也可以绝对路径。假如你写成相对路径时,比如
request.getRequestDispatcher("add").forward(request, response);
系统会在同一目录下找add,见后面的例子。
但是假如你写成request.getRequestDispatcher(/WebModule1/jsp1.jsp).forward
(request, response); 系统也会傻傻的变成:request.ge

详情请见:http://www.mark-to-win.com/index.html?content=Jsp/jspUrl.html&chapter=Jsp/jsp2_web.html#DifferenceRequestDispatcher

猜你喜欢

转载自blog.csdn.net/mark_to_win/article/details/84787282