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

Usar JAX-RS en vez de Servlets, manteniendo sesiones de usuario

Estas en el tema de Usar JAX-RS en vez de Servlets, manteniendo sesiones de usuario en el foro de Java en Foros del Web. Buenas, Quisisera saber si se pueden usar servicios RESTFull en vez de Servlets pero en el mismo contexto que estos, es decir, en una aplicación ...
  #1 (permalink)  
Antiguo 14/03/2013, 04:22
 
Fecha de Ingreso: abril-2008
Mensajes: 56
Antigüedad: 16 años
Puntos: 1
Usar JAX-RS en vez de Servlets, manteniendo sesiones de usuario

Buenas,

Quisisera saber si se pueden usar servicios RESTFull en vez de Servlets pero en el mismo contexto que estos, es decir, en una aplicación web multi-usuario manteniendo las sesiones de usuario, peticiones y demás sólo que en vez de realizar peticiones a servlets hacerlo a JAX-RS.

Con esto lo que quiero en realidad es usar webservices como web pages (servlets) para implementar una aplicación web tradicional pero en vez de usar Servlets para todas las operaciones (login, peticiones post and get, etc...) hacerlo mediante web services REST.

Un saludo,
  #2 (permalink)  
Antiguo 14/03/2013, 04:47
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 19 años, 7 meses
Puntos: 454
Respuesta: Usar JAX-RS en vez de Servlets, manteniendo sesiones de usuario

Hola:

REST como tal no permite "sesiones", por lo que en principio no permite pasar un usuario/password y que se acuerde de que se está en sesión. Sin embargo, tienes algunas alternativas.

La más sencilla es usar http-basic-authentication. Si montas tu servicio REST sobre un servidor tomcat, tomcat puede encargarse de pedir autentificación y recordarla. El punto 5 de http://oreilly.com/java/archive/tomcat-tips.html te indica cómo. Unicamente tendrías que montar tu aplicación web con la página inicial + url de servicios REST en la misma aplicación web de tomcat. Si lo haces así, tomcat te mostrará un popup de usuario/password cuando intentes acceder a cualquier página de la aplicación por primera vez y luego se acordará hasta que estes inactivo un tiempo (¿media hora?)

Si usas algún framework como Spring, posiblemente te ofrezcan más alternativas.

Y la última alternativa, es que entre los datos de tu web service metas el usuario/password y en tu código verifiques que es correcto antes de hacer nada, pero no es una buena alternativa.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 14/03/2013, 05:39
 
Fecha de Ingreso: abril-2008
Mensajes: 56
Antigüedad: 16 años
Puntos: 1
Respuesta: Usar JAX-RS en vez de Servlets, manteniendo sesiones de usuario

He encontrado esto. Pero claro, no se si te asocia la sesión a ese cliente http o te va a abrir y requerir una sesión en cada petición.

Código Java:
Ver original
  1. @Path("/helloworld")
  2. public class HelloWorld {
  3.  
  4.     @GET
  5.     @Produces("text/plain")
  6.     public String hello(@Context HttpServletRequest req) {
  7.  
  8.         HttpSession session= req.getSession(true);
  9.         Object foo = session.getAttribute("foo");
  10.         if (foo!=null) {
  11.             System.out.println(foo.toString());
  12.         } else {
  13.             foo = "bar";
  14.             session.setAttribute("foo", "bar");
  15.         }
  16.         return foo.toString();
  17.  
  18.  
  19.     }
  20. }

Probaré a ver que tal se comporta.

Etiquetas: rest, servlets, webservice
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 17:03.