sesion

myd
06 de Abril del 2004
hola a todos, tengo un link en una pagina jsp que llama a un servlet y le pasa dos parametros:
<a href="miservlet?operacion=buscar&usuario=<%=usu.getUsuario()%>">
el problema es que en la servlet se pierde la sesion (la recupero con session.getAttribute("loquequierorecuperar").
alguna idea? se me ha ocurrido utilizar response.encodeURL por si es problema de las cookies, ¿en ese caso seria algo asi?:
<a href='<%=response.encodeURL("miservlet?operacion=buscar&usuario=<%=usu.getUsuario()%>")%>'> (no es exactamente asi porque no consigo que funcione...)

Alguien me puede ayudar?
gracias y un saludo

Ken
06 de Abril del 2004
No confundamos el paso de parámetros con los atributos de sesión (o de request, o de application, ya puestos).

Si pasas parámetros a un servlet (o JSP, para el caso es lo mismo) los puedes pasar por GET (como haces en el código que muestras, con direccion?parametro=valor&parametro=valor...) o POST (mediante el uso de un botón submit en un formulario).

Estos parámetros pasados son accesibles en el servlet al que llamamos mediante request.getParameter("nombre_del_parametro") (donde "request" es el objeto HttpServletRequest del método doGet o doPost, o el objeto implícito request de los JSP).

Otro tema es pasarlos por atributos de sesión. Entonces, antes de hacer una llamada al servlet, tenemos que añadir los atributos con session.setAttribute("nombre", objeto).

Estos atributos se recuperan con session.getAttribute("nombre") y HACIENDO UN CASTING al tipo de objeto que almacenamos allí, no nos olvidemos.

Si lo que deseas es que en "miservlet" se recuperen los valores de los parámetros, recuerda que los has pasado por GET, o sea, como parámetros y no como atributos de session.

Salu2

Ken