HttpServletRequest getParameter impossible de récupérer les paramètres avec des &
J'ai une url, quelque chose comme cela localhost:8080/foo.action?param1=7¶m2=8¶m3=6
Quand c'est l'Url (comme il est), request.getParmeter("param2")
me donne 8
[Correct]
i) Lors de l'encodage convertit cette url pour localhost:8080/foo.action?param1=7%26param2=8%26param3=6
Dans ce cas, request.getParameter("param1")
me donne 7¶m2=8¶m3=6
ii) Lors de l'encodage convertit cette url pour localhost:8080/foo.action?param1=7&param2=8&param3=6
Dans ce cas, request.getParameter("param1")
me donne 7
et request.getParameter("param2")
me donne null
Quelle est la bonne façon de récupérer les paramètres? [En supposant que l'aide de l'une des deux Url systèmes de codage est inévitable]
(Je suis en utilisant struts actions)
- vous devez décoder l'URL & devrait &
- Dans mes jambes de suspension de l'action, je te le demande.getParameter("paramName"). Comment explicitement décoder l'ensemble de l'Url?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez appeler
req.getQueryString()
d'obtenir l'ensemble des paramètres de la requête et ensuite faire côté serveur décodage basé sur ce que les méthodes d'encodage que vous choisissez.Pour empêcher que cela ne codent pas les paramètres avec les délimiteurs, encoder uniquement des valeurs de paramètres. Ce sera la meilleure façon. Si vous ne pouvez pas gérer les paramètres d'encodage viens de faire le décodage sur le côté serveur avant l'analyse:
Essayez d'utiliser
Espère que cette aide.
J'ai eu cela m'arrive à moi aujourd'hui. S'avère que j'ai été en passant l'url encodée sur le fil. Lorsque la demande en est faite, il doit être aussi
http://localhost/foo?bar=1&bat=2
pas commehttp://localhost/foo?bar=1&bat=2
.Dans ce cas, j'ai dû couper l'url à partir d'un fichier xml et collé dans un navigateur.