问题
I am trying to pass data from one servlet to another using the RequestDispatcher. This is my code for the Dispatcher.
String address;
address = "/Java Resources/src/coreservlets/MapOut.java";
RequestDispatcher dispatcher =
request.getRequestDispatcher(address);
dispatcher.forward(request, response);
When I try to run it, it gives me an error saying the path is unavailable. Do I have to include something for the dispatcher to send to another servlet?
回答1:
You just need to pass servlet-mapping
's url-pattern
in the getRequestDispatcher
.
Let say your servlet mapping is "myMap" for the "MapOut" Servlet in the web.xml
.Then it should be
RequestDispatcher dispatcher = request.getRequestDispatcher("/myMap");
dispatcher.forward(request,response);
doGet()
of forwarded Servlet will be called.
Example: web.xml
<servlet>
<description></description>
<servlet-name>MapOut</servlet-name>
<servlet-class>coreservlets.MapOut</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MapOut</servlet-name>
<url-pattern>/myMap</url-pattern> <!-- You can change this-->
</servlet-mapping>
回答2:
You can directly write your name of the servlet in request.getRequestDispatcher("your servlet name");
it will fetch the path according to the web.xml configuration.
RequestDispatcher rd= request.getRequestDispatcher("MyServletName");
rd.forward(request,response);
来源:https://stackoverflow.com/questions/11457336/passing-data-from-servlet-to-another-servlet-using-requestdispatcher