Foros del Web » Programación para mayores de 30 ;) » Java »

Interceptar datos de un servlet jsf

Estas en el tema de Interceptar datos de un servlet jsf en el foro de Java en Foros del Web. Desarrollando una aplicación JSF, necesito interceptar la cadena que arroja el servlet justo antes de enviarla al browser. Para ello tratare de explicar en detalle ...
  #1 (permalink)  
Antiguo 02/02/2009, 16:52
 
Fecha de Ingreso: febrero-2009
Mensajes: 2
Antigüedad: 15 años, 3 meses
Puntos: 0
Interceptar datos de un servlet jsf

Desarrollando una aplicación JSF, necesito interceptar la cadena que arroja el servlet justo antes de enviarla al browser. Para ello tratare de explicar en detalle cual es mi problema para que me entiendan.

Si deseo construir una aplicación web mediante un servlet, puedo basarme en el siguiente ejemplo, en donde el servlet arroja al browser una cadena que se interpreta en el cliente.

Código PHP:
public class Ejemplo extends HttpServlet

    public 
void doGet (HttpServletRequest requestHttpServletResponse response)
    
throws ServletExceptionIOException
    
{
        
PrintWriter out;
        
response.setContentType ("text/html");
        
out response.getWriter();
        
out.println("Cadena a enviar al browser");
        
out.close();
    }

Cuando se trabaja con jsp's, las paginas se construyen en un archivo en donde la aplicación interpreta los tags construyendo la cadena html que se envia posteriormente al browser.

Pues bien, mi problema es ese: capturar esa cadena se enviará al browser, modificarla, editarla, o lo que sea necesario, y luego enviarla al browser.

Para ello, me dirigi al archivo web.xml y obtuve el servlet que se utiliza:

Código PHP:
<servlet>
    <
servlet-name>Faces Servlet</servlet-name>
    <
servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <
load-on-startup>1</load-on-startup>
</
servlet
Luego, descargue el código fuente de la clase javax.faces.webapp.FacesServlet, incorporándola en mi proyecto. El link es el siguiente:

Código HTML:
http://www.docjar.com/html/api/javax/faces/webapp/FacesServlet.java.html
Supuse que la cadena debería encontrarse en el método service, pero no me ha sido posible descomponer y obtener la cadena para procesarla y enviarla nuevamente. La linea que supongo que debería contener la información es la siguiente:

Código PHP:
FacesContext context facesContextFactory.getFacesContext (servletConfig.getServletContext (), requestresponselifecycle); 
Hasta ahi he llegado y no he podido encontrar solución. Intenté tambien buscar en las otras clases pero el resultado ha sido negativo nuevamente.

Quisiera saber si alguien podria ayudarme con esto que me tiene realmente complicado, en donde mi nivel basico de conocimiento de java no me ha dado como para llegar a puerto.

Como corolario a esto, quisiera saber como puedo sobreescribir una clase y/o un metodo pero con el nombre de otro paquete:

La clase que yo estoy manejando para este caso es javax.faces.webapp.FacesServlet. Quisiera sobreescribir el metodo de mi aplicacion pero que la clase FacesServlet no este en el paquete javax.faces.webapp.

Gracias.

Mi correo es [email protected]
  #2 (permalink)  
Antiguo 05/02/2009, 02:34
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: Interceptar datos de un servlet jsf

Para interceptar el contenido de lo que se genera antes de enviarselo al browser, en Java/Servlets se usan filtros (ServletFilter).
Puedes ver ejemplos, tutoriales etc. buscando en los resultados de http://www.google.es/search?q=Servlet+Filter+tutorial

S!
PD: Copiar el mismo mensaje en varios foros se llama "cross-posting" y no está bien considerado en las reglas de "netiqueta".
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:17.