Comment obtenir des paramètres de L'URL avec JSP

Dans JSP Comment puis-je obtenir des paramètres de L'URL?

Par exemple, j'ai une URL www.somesite.com/Transaction_List.jsp?accountID=5
je veux avoir le 5.

Est-il une demande.getAttribute ("accountID") comme il est pour les sessions ou quelque chose de similaire?

171
demandé sur Sajad Bahmani 2009-12-11 22:46:09

7 réponses

Dans une requête GET, les paramètres de requête sont pris à partir de la chaîne de requête (les données suivant le point d'interrogation sur L'URL). Par exemple, L'URL http://hostname.com?p1=v1&p2=v2 contient deux paramètres de requête - - p1 et p2. Dans une requête POST, les paramètres de requête sont pris à la fois à partir de la chaîne de requête et des données publiées qui sont codées dans le corps de la requête.

Cet exemple montre comment inclure la valeur d'un paramètre de requête dans le sortie:

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

Si la page a été consultée avec L'URL:

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

La sortie résultante serait:

Hello <b>John Smith</b>!

Si name n'est pas spécifié sur la chaîne de requête, la sortie serait:

Hello <b>null</b>!

Cet exemple utilise la valeur d'un paramètre de requête dans un scriptlet:

<%
    if (request.getParameter("name") == null) {
        out.println("Please enter your name.");
    } else {
        out.println("Hello <b>"+request. getParameter("name")+"</b>!");
    }
%>
163
répondu Sajad Bahmani 2014-07-23 23:57:42

À propos des objets implicites du langage D'Expression unifié , le tutoriel Java EE 5 écrit:

Objets Implicites

Le langage d'expression JSP définit un ensemble d'objets implicites:

  • pageContext: le contexte de la page JSP. Donne accès à divers objets, y compris:
    • servletContext: le contexte de la servlet de la page JSP et de tous les composants web contenus dans la même application. Voir Accès au contexte Web.
    • session: L'objet de session pour le client. Voir Maintien De L'État Du Client.
    • request: la requête déclenchant l'exécution de la page JSP. Voir obtenir des informations à partir des requêtes.
    • response: la réponse renvoyée par la page JSP. Voir Construction De Réponses.
  • en outre, plusieurs objets implicites sont disponibles qui permettent un accès facile aux objets suivants:
    • param: mappe un nom de paramètre de requête à une seule valeur
    • paramValues: mappe un nom de paramètre de requête à un tableau de valeurs
    • header: mappe un nom d'en-tête de requête à une seule valeur
    • headerValues: mappe un nom d'en-tête de requête à un tableau de valeurs
    • cookie: mappe un nom de cookie à un seul cookie
    • initParam: mappe un nom de paramètre d'initialisation de contexte à une seule valeur
  • enfin, il y a des objets qui permettent d'accéder aux différentes variables étendues décrites dans Utilisation des objets de portée.
    • pageScope: mappe les noms de variables à portée de page à leurs valeurs
    • requestScope: mappe les noms de variables à portée de requête à leurs valeurs
    • sessionScope: mappe les noms de variables à portée de session à leurs valeurs
    • applicationScope: mappe les noms de variables à portée d'application à leurs valeurs

Les parties intéressantes sont en gras:)

Donc, pour répondre votre question, vous devriez pouvoir y accéder comme ceci (en utilisant EL):

${param.accountID}

Ou, en utilisant Scriptlets JSP (non recommandé):

<%
    String accountId = request.getParameter("accountID");
%>
212
répondu Pascal Thivent 2009-12-11 20:23:36

Utilisez EL (langage D'Expression JSP):

${param.accountID}

68
répondu Taylor Leese 2009-12-11 19:54:56

Si je puis Ajouter un commentaire ici...

<c:out value="${param.accountID}"></c:out>

Ne fonctionne pas pour moi (il imprime un 0).

Au Lieu de cela, cela fonctionne:

<c:out value="${param['accountID']}"></c:out>

19
répondu Léa Massiot 2013-09-24 13:59:10

request.getParameter("accountID") est ce que vous cherchez. Cela fait partie de L'API Java Servlet. Voir http://java.sun.com/j2ee/sdk_1.3/techdocs/api/javax/servlet/ServletRequest.html pour plus d'informations.

5
répondu xyz 2015-01-09 06:24:00
String accountID = request.getParameter("accountID");
3
répondu johannes 2009-12-11 19:48:47

Exemple vous vouliez supprimer l'enregistrement subject avec son 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");
}

" Et le paramètre sera utilisé pour l'entrée sur votre requête

public int delete(int subjectid) {
    String sql = "update tbl_subject set isdeleted= '1' where id = "+subjectid+"";
    return template.update(sql);
}
0
répondu Ainz Ooal Gown 2018-03-21 03:23:41