Cómo obtener los parámetros de la URL con JSP

En JSP, ¿cómo obtengo los parámetros de la URL?

Por ejemplo, tengo una URL www.somesite.com/Transaction_List.jsp?accountID=5
Quiero obtener el 5.

¿Existe un request.getAttribute (“accountID”) como para sesiones o algo similar?

En una solicitud GET, los parámetros de solicitud se toman de la cadena de consulta (los datos que siguen al signo de interrogación en la URL). Por ejemplo, la URL http://hostname.com?p1=v1&p2=v2 contiene dos parámetros de solicitud – – p1 y p2. En una solicitud POST, los parámetros de solicitud se toman tanto de la cadena de consulta como de los datos publicados que están codificados en el cuerpo de la solicitud.

Este ejemplo muestra cómo incluir el valor de un parámetro de solicitud en el resultado generado:

 Hello <%= request.getParameter("name") %>! 

Si se accedió a la página con la URL:

 http://hostname.com/mywebapp/mypage.jsp?name=John+Smith 

el resultado resultante sería:

 Hello John Smith! 

Si no se especifica el nombre en la cadena de consulta, el resultado sería:

 Hello null! 

Este ejemplo usa el valor de un parámetro de consulta en un scriptlet:

 <% if (request.getParameter("name") == null) { out.println("Please enter your name."); } else { out.println("Hello "+request. getParameter("name")+"!"); } %> 

Acerca de los objetos implícitos del lenguaje de expresiones unificadas , el tutorial de Java EE 5 escribe:

Objetos implícitos

El lenguaje de expresión JSP define un conjunto de objetos implícitos:

  • pageContext : el contexto para la página JSP. Proporciona acceso a varios objetos, incluidos:
    • servletContext : el contexto para el servlet de la página JSP y cualquier componente web contenido en la misma aplicación. Consulte Acceso al contexto web.
    • session : el objeto de sesión para el cliente. Consulte Mantenimiento del estado del cliente.
    • request : la solicitud que desencadena la ejecución de la página JSP. Consulte Obtener información de las solicitudes .
    • response : la respuesta devuelta por la página JSP. Ver la construcción de respuestas.
  • Además, hay varios objetos implícitos disponibles que permiten un fácil acceso a los siguientes objetos:
    • param : asigna un nombre de parámetro de solicitud a un valor único
    • paramValues : paramValues un nombre de parámetro de solicitud a una matriz de valores
    • header : asigna un nombre de encabezado de solicitud a un valor único
    • headerValues : headerValues un nombre de encabezado de solicitud a una matriz de valores
    • cookie : asigna un nombre de cookie a una sola cookie
    • initParam : initParam un nombre de parámetro de inicialización de contexto a un valor único
  • Finalmente, hay objetos que permiten el acceso a las diversas variables de ámbito descritas en Uso de objetos de ámbito.
    • pageScope : pageScope nombres de variables con ámbito de página a sus valores
    • requestScope : asigna nombres de variables de ámbito de solicitud a sus valores
    • sessionScope : asigna nombres de variables con ámbito de sesión a sus valores
    • applicationScope : asigna nombres de variables con ámbito de aplicación a sus valores

Las partes interesantes están en negrita 🙂

Entonces, para responder a su pregunta, debe poder acceder de esta manera (usando EL):

 ${param.accountID} 

O, usando JSP Scriptlets (no recomendado):

 <% String accountId = request.getParameter("accountID"); %> 

Use EL (lenguaje de expresión JSP):

${param.accountID}

Si puedo agregar un comentario aquí …

no funciona para mí (imprime un 0).

En cambio, esto funciona:

request.getParameter("accountID") es lo que estás buscando. Esto es parte de la API de Java Servlet. Consulte http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/ServletRequest.html para obtener más información.

 String accountID = request.getParameter("accountID"); 

ejemplo, quería eliminar el registro del sujeto con su subject_id

 @RequestMapping(value="subject_setup/delete/{subjectid}",method = RequestMethod.GET) public ModelAndView delete(@PathVariable int subjectid) { subjectsDao.delete(subjectid); return new ModelAndView("redirect:/subject_setup"); } 

y el parámetro se usará para ingresar tu consulta

 public int delete(int subjectid) { String sql = "update tbl_subject set isdeleted= '1' where id = "+subjectid+""; return template.update(sql); } 
Intereting Posts