7
votes

séparer les valeurs dans une URL, pas avec un &

Chaque paramètre d'une URL peut avoir plusieurs valeurs. Comment puis-je les séparer? Voici un exemple:

http://www.example.com/login?name1=harry&name2=bob


4 commentaires

Comment les valeurs sont-elles entrées par l'utilisateur en premier lieu? Quelque nombre de champs de texte?


Pourquoi n'étant-tu que l'URL n'encore pas la valeur de vos paramètres? S'ils entrent% 20, le% sera codé de manière à ce que cela ne pose aucun problème, ou je manque quelque chose?


Les valeurs sont en cours d'entrée par des éléments de formulaire HTML standard. Le problème avec% 20 n'est pas qu'ils entreraient à% 20, c'est qu'ils entreraient dans ce que la% 20 représente (un espace que je pense).


Il est mentionné dans un commentaire ci-dessous sur lequel "c'est pour un mécanisme de widget standard qui sera utilisé dans une mille situations différentes ." - Il convient de noter que % 00 (null codé) dans la chaîne de requête sera activement bloqué sur certains serveurs en tant que gardien de sécurité de sécurité.


6 Réponses :


15
votes

L'approche standard en est d'utiliser deux fois le même nom de clé.

http://www.example.com/search?queries=cars&queries=phones


1 commentaires

J'ai mentionné dans ma mise à jour que vous avez raison, c'était une option aussi, mais dans mon cas, j'ai vraiment besoin de séparer les valeurs dans une valeur de paramètre. Les questions de commande et les paramètres avec le même nom auront différentes valeurs séparées (parfois avec un ordre différent)



1
votes

proposez votre propre séparateur qui est peu susceptible d'être entré dans une requête. Deux soulignes '__' par exemple.


1 commentaires

C'est essentiellement ce que je demandais, mais je voulais quelque chose qui serait impossible d'être entré dans un élément de formulaire HTML standard.



0
votes

La chose la plus facile à faire serait d'utiliser un séparateur personnalisé comme [! Valsep !!].


0 commentaires

2
votes

Vous pouvez leur donner chacun le même nom de paramètre même em>.

String[] queries = request.getParameterValues("query");


1 commentaires

Oui, cela ne fonctionne pas pour moi non plus parce que la commande compte, j'ai expliqué dans une autre réponse en légèrement plus détaillé. Je suis heureux de te souvenir de mes autres questions! Je vous remercie pour votre aide! J'ai trouvé une bonne solution, je pense, à cette question (question mise à jour).



1
votes

Pourquoi ne pas simplement faire quelque chose comme "||"? Toute personne qui tapote cela dans une zone de recherche s'est probablement endormie sur leur clavier:} alors explosez-le sur le backend.


2 commentaires

peut-être que tu as raison :). Mais ceci est pour un mécanisme de widget standard qui sera utilisé dans une mille situations différentes.


Ahhh, ok qui change de choses. Désolé pour ça.



2
votes

Just Url-encoder l'entrée de l'utilisateur afin que leurs virgules deviennent % 2c .


0 commentaires