viernes, 16 de enero de 2009

COMPARATIVO JSP - JSF

En esta oportunidad hablare de un comparativo basico entre JSP y JSF. Ya que a mi como a la mayoria que ahora trabaja con este Framework les pudo haber pasado, el tratar en entender la logica de trabajo de JSF y seguro querer tratar de trabajarlo como uno estaba acostumbrado a trabajar con JSP.

Para comenzar JSP trabaja de una conocida forma en base Request/Response por el contrario JSF tiene una logica de trabajo tipo aplicacion Desktop en base a eventos, esto para que el Developer que venga de trabajar en JAVA J2SE al querer migrar a trabajar con J2EE les sea mas facil de entender. Al comienzo para los que ya han tenido un paso por JSP les sera un poco dificultoso la forma de trabajo pero despues les aseguro que mes gustara mucho este framework, esto debido a la cantidad de controles en sus diferentes frameworks que implementan la logica de trabajo de JSF como lo son: "MyFaces,A4j,RichFaces,Jenia Faces,Tomahawk,IceFaces". Todos muy buenos en realidad y o mejor que pueden trabajar de la mano. La unica cosa que hasta ahorita critico a JSF y en lo que pienso que deberian de mejorar lo antes posible es en tratar que sus controles al momento de hacer el Diseño de la Interfaz sean mas amigables ya que por mas que se traba con una buen CSS. Nunca pero nunca una Interfaz en JSF puede lucir de una manera profesional (Pude lucir bien pero profesional nunca) y claro el diseño demora bastante (La difencia en cuanod se trabajaba con HTML puro, que era rapido y frexible ).

Bueno pero lo que queria hablar desde el comienzo solo me deje llevar, era de como trabajar desde los ManageBean (Que vendria a ser tu Servlet al trabajar con JSF).
al querer mandar y obtener un parametro, un atributo, setear en sesion y simular los tan importantes resquest y response al trabajar con JSF. Bueno aqui les dejo la solucion:


I.- SETEAR EN SESION:

A.- JSP: request.getSession().setAttribute("miVariable",valor);

B.- JSF: FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("miVariable", valor);


II.- RECUPERAR LA SESION:

A.- JSP: request.getSession().getAttribute("miVariable");

B.- JSF: FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("miVariable");


III.- RECUPERANDO 'Context, Request, Response':

A.- JSP: En JSP es automatico al utilizar los Servlet.

B.- JSF: Se tiene que simular el manejo 'Context, Resquest, Response' tanto para el HttpServlet o el Servlet, segun se requiera.


- FacesContext context = FacesContext.getCurrentInstance();

- HttpServletRequest request = (HttpServletRequest)context.getCurrentInstance().getExternalContext().getRequest();

- HttpServletResponse response = (HttpServletResponse)context.getExternalContext().getResponse();

- ServletContext request2 = (ServletContext)context.getCurrentInstance().getExternalContext().getRequest();

- ServletContext sContext = (ServletContext)context.getExternalContext().getContext();

- ServletRequest sRequest = (ServletRequest)context.getExternalContext().getRequest();

- ServletResponse sResponse = (ServletResponse)context.getExternalContext().getResponse();

12 comentarios:

Antonio dijo...

Hola JavaMan, al igual q tu tambien sigo el evangelio de Java, muy interesante tu blog especialmente pa aquellos q recien empezamos con JSF,

Saludos y sigue adelnate

Antonio dijo...

Muy clarificante. Me estoy iniciando en JSF y da gusto encontrarse con post como éste.

Un saludo

JAVAMAN dijo...

OKs aca podras encontrarte con bastate informacion de frameworks y en:

http://viviendoconjavaynomoririntentandolo.blogspot.com

con temas netamente de JAVA. suerte

Segundo Pusdá dijo...

Gracias por el aporte, me fue de mucha ayuda..

JAVAMAN dijo...

A ti doc por el seguimiento del BLOG..!.

Saludos

Carlos dijo...

Saludos desde Ecuador, me aclaraste muchas dudas >.<

aLcAtRaZ dijo...

Hola JavaMan, teniendo en cuenta que soy muy novato en Java EE. ¿me conviene primero aprender JSP para luego manejar JSF? o directamente puedo aprender está tecnología tratada en tu publicación?

JAVAMAN dijo...

Hola como estas, a mi parecer te convendria mejor aprender bien la base para el manejo de J2EE con JSP, INCLUDES, TAGs, Scriptles, etc. Ya luego cuando lo manejes bien ya podrias migrar a manejar un Framework de capa vista con JSF ya que es un poco mas complicado porque configuras bastante.

Saludos.

JUNIOR HACKER dijo...

se ve mas complejo :(

JUNIOR HACKER dijo...

no manchen es mas codigo k jsp pff :(

JAVAMAN dijo...

El mundo JAVA es muy amplio y JSP es lo más básico sabiendo solo eso no se llega a ningún lado.

Saludos.

Anónimo dijo...

no se entiende culo perro maldito