Como obter parâmetros do URL com JSP

Na JSP, como obtenho parâmetros do URL?

Por exemplo, eu tenho uma URL www.somesite.com/Transaction_List.jsp?accountID=5
Eu quero pegar o 5.

Existe um request.getAttribute (“accountID”) como existe para sessões ou algo similar?

Em uma solicitação GET, os parâmetros de solicitação são obtidos da sequência de consulta (os dados após o ponto de interrogação na URL). Por exemplo, o URL http://hostname.com?p1=v1&p2=v2 contém dois parâmetros de solicitação – – p1 e p2. Em uma solicitação POST, os parâmetros de solicitação são obtidos da cadeia de consulta e dos dados postados que são codificados no corpo da solicitação.

Este exemplo demonstra como include o valor de um parâmetro de solicitação na saída gerada:

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

Se a página foi acessada com o URL:

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

a saída resultante seria:

 Hello John Smith! 

Se o nome não for especificado na string de consulta, a saída será:

 Hello null! 

Este exemplo usa o valor de um parâmetro de consulta em um scriptlet:

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

Sobre os Objetos Implícitos da Linguagem de Expressão Unificada , o Tutorial do Java EE 5 grava:

Objetos Implícitos

A linguagem de expressão JSP define um conjunto de objects implícitos:

  • pageContext : o contexto da página JSP. Fornece access a vários objects, incluindo:
    • servletContext : O contexto para o servlet da página JSP e quaisquer componentes da Web contidos no mesmo aplicativo. Consulte Acessando o Contexto da Web.
    • session : o object da session para o cliente. Consulte Mantendo o estado do cliente.
    • request : A solicitação que aciona a execução da página JSP. Consulte Obtendo Informações das Solicitações .
    • response : a resposta retornada pela página JSP. Veja Construindo Respostas.
  • Além disso, vários objects implícitos estão disponíveis, permitindo fácil access aos seguintes objects:
    • param : mapeia um nome de parâmetro de solicitação para um único valor
    • paramValues : paramValues um nome de parâmetro de solicitação para uma matriz de valores
    • header : mapeia um nome de header de solicitação para um único valor
    • headerValues : headerValues um nome de header de solicitação para uma matriz de valores
    • cookie : Mapeia um nome de cookie para um único cookie
    • initParam : initParam um nome de parâmetro de boot de contexto para um único valor
  • Finalmente, há objects que permitem access às várias variables ​​do escopo descritas em Usando objects do escopo.
    • pageScope : pageScope nomes de variables ​​com escopo de página para seus valores
    • requestScope : mapeia nomes de variables ​​com escopo de solicitação para seus valores
    • sessionScope : mapeia nomes de variables ​​com escopo de session para seus valores
    • applicationScope : mapeia nomes de variables ​​com escopo de aplicativos para seus valores

As partes interessantes estão em negrito 🙂

Então, para responder à sua pergunta, você deve poder acessá-la assim (usando o EL):

 ${param.accountID} 

Ou, usando JSP Scriptlets (não recomendado):

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

Use EL (JSP Expression Language):

${param.accountID}

Se eu puder adicionar um comentário aqui …

não funciona para mim (imprime um 0).

Em vez disso, isso funciona:

request.getParameter("accountID") é o que você está procurando. Isso faz parte da API do Java Servlet. Consulte http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/ServletRequest.html para obter mais informações.

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

Por exemplo, você queria excluir o registro de assunto com seu 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"); } 

e o parâmetro será usado para input na sua consulta

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