2011-11-01 28 views
5

Quiero redirigir la página JSP desde un servlet. Todas las páginas JSP están bajo Web Content. no under Web-INF. Tengo un problema para llamar a esas páginas JSP. Tengo 404 errores. problema con el caminoredirigir jsp del servlet RequestDispatcher

¿Cómo puedo llamar a páginas jsp en Contenido web?

ServletContext context = getServletContext(); 
       RequestDispatcher dispatcher = context.getRequestDispatcher("/thankYou.jsp"); 
       dispatcher.forward(request,response); 

Thanks ahead.

¡PROBLEMA RESUELTO!

+2

Lo resolví utilizando esta solicitud RequestDispatcherDispatcher; \t \t \t \t requestDispatcher = request.getRequestDispatcher ("/ thankYou.jsp"); \t \t \t \t requestDispatcher.forward (request, response); – kitokid

Respuesta

13

He resuelto el problema con RequestDispatcher así:

RequestDispatcher requestDispatcher; 
requestDispatcher = request.getRequestDispatcher("/thankYou.jsp"); 
requestDispatcher.forward(request, response); 
7

Una forma un poco más limpio para escribir este código es:

request.getRequestDispatcher("/thankyou.jsp").forward(request, response); 
0

Uso SendDirect si desea trabajar con páginas JSP

response.sendRedirect("/thankyou.jsp"); 

Esto es simplemente una cosa para usar que RequestDispatc ella que no funciona con doPost().

+0

Por supuesto que no: una solicitud POST no se enviará con "salida visual", que se envía de vuelta al cliente. Pero no se redirecciona al JSP, sino a la ruta que se asigna para el servlet (por lo que el cliente vuelve a solicitar el sitio a través de GET). – UniversE

+0

Con el despachador de solicitudes, podemos reenviar los objetos de solicitud y respuesta a la página siguiente desde una página intermedia, lo cual no es posible a su manera. –

0

Mejor manera de utilizar el método 'sendRedirect()' utilizando el objeto de respuesta.

se puede escribir como

response.sendRedirect("./newpage.jsp"); 

Esto enviará el control a la página 'newpage.jsp'.

+0

No, esta es la manera incorrecta definitiva. Esto enviaría un HTTP 302 al cliente y lo redireccionaría a la página JSP, lo que hace que el Servlet sea bastante inútil. Si coloca su jsp en el directorio "WEB-INF/view", p. no funcionaría de todos modos. – UniversE

0

Este error se produce cuando tiene un error en el scriptlet java de su jsp al que ha reenviado su solicitud.
Por ejemplo, estaba llamando al <% request.getAttribute ("usuario"); %> mientras que el problema se resolvió cuando utilicé <% request.getParameter ("user")%>

Cuestiones relacionadas