2009-12-01 15 views

Respuesta

2

gusta esta probablemente:

<jsp:include page="/path/to/servlet" /> 

Más aquí: jsp docs

+0

Eso es exactamente lo contrario de lo que OP está pidiendo. – schlingel

+0

No puedo ver cómo es eso verdad ... – inkredibl

+0

Problema: Estás en un servlet y quieres representar un JSP específico. Solución: incluya el resultado del servlet en el JSP. (¿Qué?) Pero eso no es lo que quiero. Deseo enviar al usuario después de una acción específica a un JSP específico. Puede ser el mismo o pueden diferir con respecto a los parámetros (página de error, página de éxito, etc.) – schlingel

0

Para reenviar una solicitud/respuesta de servlet desde una a otra cosa (por ejemplo, JSP) que querrá mirar a la clase RequestDispatcher . La clase ServletContext tiene un método para obtener un despachador, que se puede llamar desde un servlet.

Por ejemplo (a menos de método doPost/doGet de un servlet):

RequestDispatcher rd = getServletConfig().getServletContext() 
    .getRequestDispatcher("/jsp/myfile.jsp").forward(request,response); 
23

Normalmente no hace uso de un servlet para generar la salida HTML. Normalmente usas JSP/EL para esto. Usar out.write y consortes para transmitir contenido HTML se considera una mala práctica. Mejor hacer uso de attribus de solicitud.

Por ejemplo:

protected void doGet(HttpServletRequest request, HttpServletResponse response) { 
    Object data = "Some data, can be a String or a Javabean"; 
    request.setAttribute("data", data); 
    request.getRequestDispatcher("/WEB-INF/page.jsp").forward(request, response); 
} 

Ubicación en web.xml en una <url-pattern> de, por ejemplo /page. Coloque el JSP en /WEB-INF para evitar el acceso directo. Luego, en la JSP puede utilizar EL (Expression Language) para acceder a los atributos con ámbito:

<p>The data from servlet: ${data}</p> 

llamada al servlet por http://example.com/context/page. Simple como eso. De esta forma puede controlar el resultado y la presentación en un solo lugar, el JSP.

+0

Than Q .it está trabajando – pavan

0
getServletConfig().getServletContext() 
    .getRequestDispatcher("/jsp/myfile.jsp").forward(request,response); 

es VOID tipo, no puede volver RequestDispatcher rd.

+0

¿Estás respondiendo alguna otra pregunta? – SiKing

+0

@SiKing Este es un comentario para responder http://stackoverflow.com/a/1824967/188107 arriba. FWIW es incluso un comentario marginalmente útil, aunque una edición sería más apropiada. Traté de informarlo pero se discutió ... – musiKk

Cuestiones relacionadas