日期:2014-05-18  浏览次数:20734 次

关于获得RequestDispatcher的两种方式
当我们在servlet里想做转发的时候,会用到RequestDispatcher,通常是这样写:

方法一. getServletContext().getRequestDispatcher(path).forward(request,response)
方法二. request.getRequestDispatcher(path).forward(request,response)

api上说,方法二和方法一不同的地方在于方法二支持 相对路径。

绝对路径我明白,是以“/”打头的,但是相对路径是怎么回事啊??相对谁呢 ?

比如我的应用名叫 test,下面有个pages文件夹,pages里有个叫hello.jsp的文件。如果我想在servlet里把请求转发到
hello.jsp,用绝对路径的话是这样:
request.getRequestDispatcher("/pages/hello.jsp").forward(request,response)

用相对路径的话应该怎么写呢 ?

------解决方案--------------------
引用楼主 lost_alienpp 的帖子:
比如我的应用名叫 test,下面有个pages文件夹,pages里有个叫hello.jsp的文件。如果我想在servlet里把请求转发到
hello.jsp,用绝对路径的话是这样:
request.getRequestDispatcher("/pages/hello.jsp").forward(request,response)

用相对路径的话应该怎么写呢 ?