2012-07-12 116 views
6

Estoy tratando de pasar datos de un servlet a otro utilizando el RequestDispatcher. Este es mi código para el Dispatcher.Pasar datos del servlet a otro servlet usando RequestDispatcher

String address; 

address = "/Java Resources/src/coreservlets/MapOut.java"; 

RequestDispatcher dispatcher = 
    request.getRequestDispatcher(address); 
dispatcher.forward(request, response); 

Cuando intento ejecutarlo, me da un error que dice que la ruta no está disponible. ¿Debo incluir algo para que el despachador envíe a otro servlet?

Respuesta

12

Solo necesita pasar servlet-mapping 's url-pattern en el getRequestDispatcher.

Digamos que su correlación de servlet es "myMap" para el servlet "MapOut" en el web.xml .A continuación, debería ser

RequestDispatcher dispatcher = request.getRequestDispatcher("/myMap"); 
dispatcher.forward(request,response); 

doGet() de servlet reenviado serán llamados.

Ejemplo: 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> 
+0

todavía estoy un poco confundido, ¿qué es lo que quiere decir con correlación de servlet. – StackTraceYo

+0

RequestDispatcher rd; \t rd = request.getRequestDispatcher ("/ MapOut"); \t rd.forward (solicitud, respuesta); esto es lo que tengo en el servlet en el que quiero que los atributos creados se envíen a "\ MapOut" ... ¿Tengo que hacer una solicitud en la clase MapOut? – StackTraceYo

+0

@AhmadFarag: compruebe la respuesta editada –

1

Puede escribir directamente el nombre del servlet en request.getRequestDispatcher("your servlet name"); va a buscar el camino de acuerdo con la configuración web.xml.

RequestDispatcher rd= request.getRequestDispatcher("MyServletName"); 
rd.forward(request,response); 
+1

No funciona. Por favor déjame en qué versión está funcionando. Estoy usando el servlet 2.4 – sar

+0

@saurabh sí. funciona en la versión de servlet 2.4, , compruebe el nombre de servlet y la ruta. –

+0

Esto se hace a través de 'javax.servlet.ServletContext.getNamedDispatcher (String)'. 'request.getRequestDispatcher' funciona solo para rutas –

Cuestiones relacionadas