req.getRequestDispatcher("jsp/viewArticles.jsp").forward(req, resp);
因此,我们获得了请求的分派器,并提供了路径。好的,到目前为止。现在,我们将其转发给
req
和resp
。现在我迷路了:我们从此
RequestDispatcher
获得req
,所以RequestDispatcher
是req
的成员方法。那么为什么我们仍然需要为此forward
req
RequestDispatcher
本身呢?这种方法不能仅使用this
访问req
吗?我发现了一个与我相同的问题,但它不理解解释,这就是为什么我再次作为绝对servlet初学者问。
How do the getRequestDispatcher() and forward() methods work?
为了澄清起见,
req
和resp
分别是HttpServletRequest
和HttpServletResponse
类型。 最佳答案
根据API的定义,RequestDispatcher是一个对象,该对象接收来自客户端的请求并将其发送到服务器上的任何资源(例如servlet,HTML文件或JSP文件)。 Servlet容器(也称为Tomcatt)创建RequestDispatcher对象,该对象用作位于特定路径或由特定名称指定的服务器资源的包装。
getRequestDispatcher()方法可从当前请求对象或当前Servlet上下文对象获得。将req.getRequestDispatcher(path)用于同一上下文中的相对路径,而将ServletContext.getRequestDispatcher(path)用作绝对路径。
在转发之前,您可以使用req.setAttribute(“ key”,valueObject)方法将参数Object作为属性添加到服务器参数。 Request处理来自客户端的数据,您可以完成它,然后Response将处理页面,标头,Cookie等到客户端。
希望这可以帮助