RequestDispatcher

从ServletRequest得到RequestDispatcher:

 

RequestDispatcher rd = request.getRequestDispatcher("result.jsp");

ServletRequest中的getRequestDispatcher()方法需要一个String路径作为参数,你要把请求转发到哪个资源,就要在这里指定这个资源的路径。

  如果路径最前面有一个斜线(“/”),容器就会把这看做是“要从这个Web应用的根开始”。如果路径不是以斜线开头,则认为路径相对于原来的请求。

 

 

从ServletContext得到RequestDispatcher

RequestDispatcher rd = getServletContext().getRequestDispatcher("/result.jsp");

与ServletRequest中的相应方法一样,这个getRequestDispatcher()方法也取一个String路径作为参数,要把请求转发到哪个资源,就要在这里指定资源的路径,但是不能指定相对于当前资源(也就是接受此请求的资源)的路径。

  这说明,路径必须以斜线开始!

 

 

RequestDispatcher只有两个方法:forward()  和  include()

但是常用的都是forward()方法来传递请求,servlet控制器很少调用include方法。 不过在jsp中会在<jsp:include>标准动作调用include方法

 

posted @ 2017-12-21 16:12  胡叁安  阅读(235)  评论(0)    收藏  举报