簡體   English   中英

如何從servlet轉發到位於單獨程序包中的另一個servlet?

[英]How to forward from servlet to another servlet located in separate package?

我無法將請求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錯誤。

提供給getRequestDispatcher()方法的參數不引用Servlet類名稱,而是引用其映射。

您可以通過以下方式定義servlet映射:

  1. 將其聲明為web.xml
  2. 使用@WebServlet批注。

試試這個使用Servlet上下文

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM