Lorsque vous recevez un appel doGet ou doPost dans une servlet, vous pouvez utiliser getparameterxxx()
pour obtenir la chaîne de requête ou les données de publication dans un endroit facile.
Si l'appel était un GET, vous obtenez des données de la chaîne url/query.
Si l'appel était un POST, vous obtenez toutes les données de poste pour vous. Sauf qu'il s'avère, si vous ne mettez pas un attribut 'action' dans votre appel de formulaire. Si vous spécifiez une URL complète ou partiellement qualifiée pour le paramètre d'action, tout fonctionne très bien. Si ce n'est pas le cas, le navigateur appelle la même URL que sur la page précédente et s'il y a des données de chaîne de requête là, vous obtiendrez cela ainsi que des données POST, et il n'y a aucun moyen de les différencier.Comment séparer les paramètres de chaîne de requête des données POST dans une servlet Java
Ou est là? Je regarde à travers l'objet request, je vois d'où viennent les données postales, j'essaie juste de comprendre d'où proviennent les données GET, donc je peux effacer les données GET lors d'un post-appel et effacer les données post sur un appel GET avant de l'analyser si possible.
Une idée de la façon sûre de le faire?
Et devinez lemme: vous n'avez jamais essayé de ne pas mettre un champ d'action dans une étiquette de formulaire. :-)
Pourtant, cela se produit toujours lorsque l'action est présente, si l'URL de l'action inclut une chaîne de requête. –
Je n'ai jamais vu ça, mais j'ai essayé la chose sans action dans les différents navigateurs et ils se comportent tous de la même manière. Cela dépend probablement de la qualification du paramètre d'action ... – stu
en repensant à ces années plus tard, ce qui peut ne pas être évident était que cette étiquette de forme cassée faisait partie d'une grande application de production et j'avais peur de toucher quelque chose d'aussi important. Donc, même si la question semble stupide, c'était ma raison d'être à l'époque. – stu