使用Servlet RequestDispatcher和forward()找不到文件

时间:2017-11-09 14:59:31

标签: servlets

我有一个存在于路径的servlet:

/myservlet1/doit

当调用这个servlet时,我希望它将请求(最后)转发给第二个名为的servlet:

/myservlet2/finish

我编码:

ServletContext ctx = this.getServletContext().getContext("/myservlet2");
RequestDispatcher dispatcher = 
ctx.getRequestDispatcher("/myservlet2/finish");
dispatcher.forward(request, response);

但是我没有找到指示“/myservlet2/finish”。

1 个答案:

答案 0 :(得分:0)

当我们执行getRequestDispatcher时,我们会向调度程序的上下文提供 relative 的URL。因为我们要求/myservlet2的servlet上下文,所以当我们请求请求调度程序时,提供给getRequestDispatcher的路径是相对于上下文的。这意味着正确的代码片段应为:

ServletContext ctx = this.getServletContext().getContext("/myservlet2");
RequestDispatcher dispatcher = ctx.getRequestDispatcher("/finish");
dispatcher.forward(request, response);