Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/02/2009, 16:52
abudido
 
Fecha de Ingreso: febrero-2009
Mensajes: 2
Antigüedad: 16 años, 1 mes
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]