我无法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
错误。
答案 0 :(得分:1)
您为getRequestDispatcher()
方法提供的参数不是引用servlet类名,而是引用它的映射。
您可以通过以下方式定义servlet映射:
web.xml
@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(包无关紧要)