Comment lire les paramètres et la valeur de la chaîne de la requête à l'aide de java?
Je suis en utilisant Ciui de google code et toutes les demandes sont uniquement les requêtes GET et pas POST. Les appels sont effectués par l'ajax (je ne suis pas sûr). J'ai besoin de savoir comment lire le "searchstring" paramètre à partir de cette URL. Quand j'ai lu cela dans ma Servlet utilisant le getQueryString() la méthode je ne suis pas en mesure de former convenablement le texte actuel. Cette unicode (lorsqu' % remplacé par /) comme le texte est en fait en Chinois. S'il vous plaît laissez-moi comment décoder la chaîne de recherche et de créer la chaîne.
L'autre paramètre est en bon pourcentage de codant pour une je suis capable de décoder à l'aide de l'URL décoder. Merci à l'avance.
request.getParameter(...)
méthode? (requête est de type HttpServletRequest).Pas de. je n'ai pas eu ce paramètre lorsque j'ai utilisé de la demande.getParameter(). J'ai donc essayé d'utiliser la chaîne de requête 🙁
donner le code javascript qui est de l'appel de la servlet.
OriginalL'auteur thndrkiss | 2010-02-16
Vous devez vous connecter pour publier un commentaire.
Votre schéma de codage pour ceux caractères chinois en fait viole les standards du web (à savoir RFC 3986): le pourcentage signe est un caractère réservé, qui ne peut pas être utilisée, sauf pour le standard pour cent de codage.
J'avais conseillons vivement d'utiliser la norme schéma d'encodage (UTF-8 octets et le pourcentage de codage); alors il suffit d'utiliser la norme
getParameter()
méthode. Si vous insistez sur la violation de la norme, il peut être impossible de résoudre votre problème dans les plus conformes aux normes conteneur de servlet.OriginalL'auteur Michael Borgwardt
Ok dans mon cas, j'ai eu la chaîne de requête à partir d'une autre source de sorte que vous peut-être besoin de cette:
Alors vous pouvez utiliser:
OriginalL'auteur Steven Lizarazo
Décodage du paramètre se fait automatiquement.
System.out.println(Collections.list(request.getParameterNames()))
dire? Est lesearchString
là? (notez qu'il est sensible à la casse).OriginalL'auteur Bozho
Une solution avec Java 8.
Ce morceau de code de transformer la chaîne de requête dans une clé/valeur de la liste:
le commentaire de @Tuno m'a inspiré à écrire une nouvelle réponse, cette alternative (et plus court) solution utiliser
groupingBy
méthode:Je suggère à décoder les valeurs avec
URLDecoder.decode(String s, String enc)
Les deux solutions estampes de la collection du contenu de cette ligne:
.collect(Collectors.toMap(o -> o[0], o -> o[1]))
pour obtenir une Carte et de récupérer des clés.Votre solution ne fonctionne pas lorsqu'il y a plusieurs valeurs associées à un champ unique (par exemple,
field1=value1&field1=value2&field1=value3
).OriginalL'auteur freedev