Come ottenere parametri dall’URL con JSP

In JSP come ottengo i parametri dall’URL?

Ad esempio, ho un URL www.somesite.com/Transaction_List.jsp?accountID=5
Voglio ottenere il 5.

Esiste un request.getAttribute (“accountID”) come esiste per le sessioni o qualcosa di simile?

In una richiesta GET, i parametri della richiesta vengono presi dalla stringa della query (i dati che seguono il punto interrogativo sull’URL). Ad esempio, l’URL http://hostname.com?p1=v1&p2=v2 contiene due parametri di richiesta – – p1 e p2. In una richiesta POST, i parametri della richiesta vengono presi sia dalla stringa di query sia dai dati inviati che sono codificati nel corpo della richiesta.

Questo esempio dimostra come includere il valore di un parametro di richiesta nell’output generato:

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

Se si accede alla pagina con l’URL:

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

l’output risultante sarebbe:

 Hello John Smith! 

Se il nome non è specificato nella stringa di query, l’output sarà:

 Hello null! 

Questo esempio utilizza il valore di un parametro di query in uno scriptlet:

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

Informazioni sugli oggetti impliciti di Unified Expression Language , l’ esercitazione Java EE 5 scrive:

Oggetti impliciti

Il linguaggio di espressione JSP definisce un insieme di oggetti impliciti:

  • pageContext : il contesto per la pagina JSP. Fornisce l’accesso a vari oggetti tra cui:
    • servletContext : il contesto per il servlet della pagina JSP e tutti i componenti Web contenuti nella stessa applicazione. Vedi Accesso al contesto Web.
    • session : l’object della sessione per il client. Vedi Manutenzione dello stato del cliente.
    • request : la richiesta che triggers l’esecuzione della pagina JSP. Vedere Ottenere informazioni dalle richieste .
    • response : la risposta restituita dalla pagina JSP. Vedi Costruire risposte.
  • Inoltre, sono disponibili numerosi oggetti impliciti che consentono un facile accesso ai seguenti oggetti:
    • param : param un nome di parametro di richiesta su un singolo valore
    • paramValues : paramValues nome di un parametro di richiesta a un array di valori
    • header : header mapping di un nome dell’intestazione della richiesta a un singolo valore
    • headerValues : headerValues un nome dell’intestazione della richiesta a un array di valori
    • cookie : cookie mapping di un nome cookie in un singolo cookie
    • initParam : initParam un nome di parametro di inizializzazione del contesto su un valore singolo
  • Infine, ci sono oggetti che consentono l’accesso alle varie variabili con scope descritte in Using Scope Objects.
    • pageScope : pageScope nomi delle variabili con ambito pagina ai rispettivi valori
    • requestScope : requestScope mapping dei nomi delle variabili con ambito richiesta ai rispettivi valori
    • sessionScope : sessionScope nomi delle variabili con ambito sessione ai rispettivi valori
    • applicationScope : associa i nomi delle variabili con ambito applicazione ai relativi valori

Le parti interessanti sono in grassetto 🙂

Quindi, per rispondere alla tua domanda, dovresti essere in grado di accedervi in ​​questo modo (usando EL):

 ${param.accountID} 

Oppure, usando JSP Scriptlets (non consigliato):

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

Usa EL (JSP Expression Language):

${param.accountID}

Se posso aggiungere un commento qui …

non funziona per me (stampa uno 0).

Invece, questo funziona:

request.getParameter("accountID") è quello che stai cercando. Questo fa parte dell’API Java Servlet. Vedere http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/ServletRequest.html per ulteriori informazioni.

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

esempio hai voluto eliminare il record sobject con suo 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 il parametro verrà utilizzato per l’input sulla tua query

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