Quelle est la différence entre getAttribute()
et getParameter()
méthodes au sein de HttpServletRequest
classe ?
Réponses
Trop de publicités?-
getParameter()
renvoie les paramètres de la requête http. Ceux qui sont transmis par le client au serveur. Par exemplehttp://example.com/servlet?parameter=1
. Peut seulement retournerString
-
getAttribute()
est réservé à un usage côté serveur - vous remplissez la requête avec des attributs que vous pouvez utiliser dans la même requête. Par exemple, vous définissez un attribut dans une servlet et vous le lisez dans un JSP. Peut être utilisé pour n'importe quel objet, pas seulement une chaîne.
En général, un paramètre est une valeur de type chaîne de caractères qui est le plus souvent connue pour être envoyée par le client au serveur (par exemple, un post de formulaire) et récupérée dans le fichier demande de servlet . L'exception frustrante à cette règle est Paramètres initiaux du ServletContext qui sont des paramètres de type chaîne configurés dans le fichier web.xml et existant sur le serveur.
Un attribut est une variable de serveur qui existe dans un champ d'application spécifique, par exemple :
-
application
disponible pendant toute la durée de vie de l'application -
session
disponible pour la durée de la session -
request
disponible uniquement pour la durée de la demande -
page
(JSP uniquement), disponible uniquement pour la page JSP en cours.
Il est essentiel de savoir que attributs ne sont pas paramètres .
Le type de retour pour les attributs est un Objet alors que le type de retour pour un paramètre est un Chaîne de caractères . Lorsque vous appelez le getAttribute(String name)
n'oubliez pas que les attributs doivent être coulés.
En outre, il y a pas d'attributs spécifiques aux servlets et il n'y a pas de paramètres de la session .
Ce post est écrit dans le but de se connecter sur la réponse de @Bozho, comme une information supplémentaire qui peut être utile pour d'autres personnes.
La différence entre getAttribute et getParameter est que getParameter renvoie la valeur d'un paramètre qui a été soumis par un formulaire HTML ou qui a été inclus dans une chaîne de requête. getAttribute renvoie un objet que vous avez défini dans la requête, la seule façon de l'utiliser est en conjonction avec un RequestDispatcher. Vous utilisez un RequestDispatcher pour transmettre une requête à une autre ressource (JSP / Servlet). Ainsi, avant de transmettre la demande, vous pouvez définir un attribut qui sera disponible pour la ressource suivante.
getParameter
- sert à obtenir les informations dont vous avez besoin à partir de la page HTML du client
getAttribute
- Elle est utilisée pour récupérer les paramètres définis précédemment dans une autre ou la même page JSP ou Servlet.
Fondamentalement, si vous faites suivre ou passez simplement d'un jsp/servlet à un autre, il n'y a aucun moyen d'avoir les informations que vous voulez à moins que vous ne choisissiez de les mettre dans un objet et d'utiliser l'attribut set-attribute pour les stocker dans une variable de session.
En utilisant getAttribute, vous pouvez récupérer la variable de session.