¡Hola a todos! En el desarrollo web con JSP (JavaServer Pages), a menudo necesitamos saber la URL de la página actual o la de la página que la llamó. Esto es útil para tareas como la redirección dinámica, la creación de enlaces condicionales o simplemente para depurar el flujo de la aplicación. Aquí te muestro cómo obtener esta información de forma rápida usando objetos de la API de Servlet.
1. Obtener la URL de la página actual
Para obtener la URL completa de la página JSP que se está ejecutando, puedes utilizar el método getRequestURL()
del objeto request
. Esta es la URL que ves en la barra de direcciones de tu navegador.
<%= request.getRequestURL() %>
Ejemplo: Si tu página se encuentra en http://localhost:8080/mi-app/pagina.jsp
, esta expresión devolverá esa URL completa.
2. Obtener la URL que generó el llamado
Si tu página actual fue accedida a través de una redirección o un forward desde otra página, es posible que necesites la URL de la página original. Para ello, puedes acceder a un atributo especial de la solicitud: javax.servlet.forward.request_uri
.
<%= request.getAttribute("javax.servlet.forward.request_uri") %>
Ejemplo: Si la página index.jsp
hizo un forward a pagina.jsp
, esta expresión en pagina.jsp
devolvería la URL de index.jsp
.
3. Construir una URL completa
Si quieres armar la URL de la página que hizo el llamado, incluyendo el host y el puerto, puedes combinar varios métodos. Esto te permite tener la URL exacta tal como la vería un usuario en su navegador.
<%= request.getLocalName() %>:<%= request.getLocalPort() %><%= request.getAttribute("javax.servlet.forward.request_uri") %>
Análisis de la expresión:
request.getLocalName()
: Devuelve el nombre del host local (ej.localhost
).request.getLocalPort()
: Devuelve el puerto en el que está corriendo el servidor (ej.8080
).request.getAttribute(...)
: Como vimos antes, obtiene la URI de la página de origen.
Espero que estos pequeños trucos te ayuden a gestionar mejor las rutas en tus aplicaciones web con JSP.
Simple, directo y correcto. Perfeeeeeeeeeecto. Muchísimas gracias.
ResponderBorrarCon todo gusto Temu
ResponderBorrar