servlets - Cómo evitar agregar jsessionid al final de la URL redirigida
redirect httpresponse (1)
Estoy intentando redirigir a la URL de dominio extranjero de mi servlet. Pero la redirección agrega ; jsessionid = ghdssdf ... al final de la url. No sé cómo puedo evitar agregar el ID de jsession a mi url. Mi aplicación se ejecuta en Websphere
resp.sendRedirect(resp.encodeRedirectURL("https://www.facebook.com/mymage"));
finalizar la url dirigida se puede ver en el navegador como https://www.facebook.com/mymage;jsessionid=dfsdfsd
Parece que está confundido por el mal elegido nombre de método encodeRedirectURL()
. No realiza ninguna "codificación URL" ("tratar con caracteres especiales") como lo implica el nombre del método. Simplemente realiza "reescritura de URL" al agregar la ID de sesión actual como parámetro de ruta. Esto está destinado a usarse cuando se renderizan enlaces internos en la página web (generalmente a través de JSTL <c:url>
en páginas JSP, o JSF <h:link>
en páginas Facelets), para que la sesión HTTP se mantenga en caso de que el cliente tiene las cookies deshabilitadas
No lo necesitas aquí en absoluto. Simplemente pase la URL directamente:
response.sendRedirect("https://www.facebook.com/mymage");
Ver también:
No relacionado con el problema concreto: la reescritura de URL podría desactivarse agregando la entrada siguiente a web.xml
de web.xml
, que indica al contenedor que use una política de "Solo cookies" para mantener la sesión HTTP.
<session-config>
<tracking-mode>COOKIE</tracking-mode>
</session-config>