Comment le champ d'attribut d'un HttpServletRequest cartes à raw d'une requête HTTP?
En Java, le champ d'attribut d'un objet HttpServletRequest peuvent être récupérées à l'aide de la méthode getAttribute:
String myAttribute = request.getAttribute("[parameter name]");
Où le HttpServletRequest attribut de données est stockée dans un raw de la requête HTTP? Est-il dans le corps de la demande?
Par exemple, je suis en train de créer un raw requête HTTP GET qui sera envoyé à ma servlet utilisant un programme client. Ma servlet.doGet() la méthode serait quelque chose comme ceci:
public void doGet(HttpServletRequest request, HttpServletResponse response)
{
String myAttribute = request.getAttribute("my.username");
...
}
Où dois-je mettre mes.nom d'utilisateur données brutes de la requête HTTP afin que la myAttribute' String reçoit la valeur "John Doe" après l'attribution?
OriginalL'auteur Alceu Costa | 2009-05-26
Vous devez vous connecter pour publier un commentaire.
À ajouter à @gid réponse, les attributs ne sont pas présents dans la requête HTTP comme il se déplace sur le fil. Ils sont créés (par code) lors du traitement de la demande. Une utilisation très courante est d'avoir un serveur de jeu (aka créer) certains attributs et ensuite transférer vers une JSP qui va faire usage de ces attributs. C'est, d'une requête HTTP arrive et est envoyé à une Servlet. La Servlet s'attache à certains attributs. Supplémentaires de traitement côté serveur est fait, finalement envoyer la page à un JSP, où les attributs sont utilisés. La réponse est généré dans la page JSP. La requête HTTP et la réponse HTTP ne contiennent pas tous les attributs. Les attributs sont 100% purement côté serveur de l'information.
Quand une seule requête HTTP est terminée, les attributs deviennent disponibles pour la collecte des ordures (sauf si elles sont conservées dans un autre emplacement, tel qu'une session). Les attributs ne sont associés qu'à un seul objet de demande.
OriginalL'auteur Eddie
Juste pour être clair, je pense que @Jon réponse n'est pas parfaitement clair. Les valeurs de getAttribute et setAttribute sur HttpServletRequest ne sont pas présentes sur ce qui est réellement transmis sur le fil, ils sont à côté serveur uniquement.
pas de soucis...ta
OriginalL'auteur Gareth Davis
Je pense qu'il est vraiment se poser est "comment puis-je obtenir parameteres dans mon programme", non pas les attributs. Si c'est la question, puis envoyer des paramètres dans la requête GET en tant que partie de l'URL (après un point d'interrogation, http://myhost.com/myapp?name=joe&age=26) puis les récupérer à l'aide de la demande.getParameter("nom") et de la demande.getParameter("age"), ou tout ce que vous avez besoin.
OriginalL'auteur