如何从servlet转发到位于单独包中的另一个servlet?

时间:2014-09-26 13:49:37

标签: java jsp servlets redirect error-handling

我无法forward对另一个包中存在的另一个servlet的请求。

以下是发件人servlet的有效代码:

RequestDispatcher rDispatcher=request.getRequestDispatcher("/RecieverServlet");
rDispatcher.forward(request, response);

这是目录结构:

Source Packages --> servlets.senderServ.SenderServlet.java
Source Packages --> servlets.a.b.RecieverServlet.java

//a and senderserv are subpackages of servlet package
//b is subpackage of a package

网址:/RecieverServlet无效,我收到HTTP Status 404 - Not Found错误。

3 个答案:

答案 0 :(得分:1)

您为getRequestDispatcher()方法提供的参数不是引用servlet类名,而是引用它的映射。

您可以通过以下方式定义servlet映射:

  1. web.xml
  2. 中声明
  3. 使用@WebServlet注释。

答案 1 :(得分:0)

尝试使用Servlet上下文

 ServletContext context = getServletContext().getContext("package name of other servlet");
        RequestDispatcher rd = context.getRequestDispatcher("/name of servlet");
        rd.forward(request, response);

答案 2 :(得分:0)

检查您的web.xml配置文件以查找/RecieverServlet映射。确保映射到此URL的正确servlet(包无关紧要)