2014-09-26 31 views
0

我無法給forward請求另一個存在於不同包中的servlet。如何從servlet轉發到位於單獨包中的另一個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錯誤。

回答

1

您給getRequestDispatcher()方法的參數沒有引用servlet類的名稱,而是引用它的映射。

您可以定義servlet映射或者通過:

  1. 聲明它詮釋了web.xml
  2. 使用@WebServlet註解。
+0

如何通過'@ WebServlet'註釋定義servlet映射? – 2014-09-26 14:01:10

+0

用@WebServlet(urlPatterns =「/ RecieverServlet」)註釋你的servlet類。請注意,它至少需要Servlet 3.0。 – Benjamin 2014-09-26 14:06:37

0

試試這個使用servlet上下文

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

檢查你的web.xml配置文件爲/RecieverServlet映射。確保將正確的servlet(包無關緊要)映射到此URL

相關問題