problème d'encodage de valve jboss tout url rewriting
-
01-10-2019 - |
Question
J'ai une application., Codé avec EJB3, JSF et Maven, qui fonctionne sur jboss 4.2.2GA
Le problème que j'ai été confronté pendant 2 jours est que je ne peux pas convertir les caractères non-anglais qui sont ajoutés à l'URL sur l'exécution. Par exemple, il y a une zone de texte de recherche et un bouton. Lorsqu'un utilisateur entre un mot comportant des caractères non-anglais, et appuie sur le bouton, il est ajouté à l'URL avec des caractères incorrects comme% 56 ou & 347 etc ..
Est-il possible d'obtenir ce que je suis en train de faire ici? BTW, est-il aussi un moyen d'obtenir plus de ce problème sur la configuration du côté jboss plutôt que côté application (filtres ou context.xml etc ..)?
Toute aide serait appréciée Merci beaucoup, Baris
- EDIT : Je l'ai résolu ce problème en utilisant URLEncoder. Quand je suis passé la variable à la méthode d'action, j'utilise URLEncoder pour encoder à droite charset.
Exemple: paramètre de l'Take URL: Chaîne someString = ServletActionContext.getRequest () getParameter (le "someStringFromURL");. Encode la chaîne; chaîne codée = URLEncoder.encode (someString, "ISO-8859-9");
La solution 2
J'ai résolu ce problème en utilisant URLEncoder. Quand je suis passé la variable à la méthode d'action, j'utilise URLEncoder pour encoder à droite charset.
Exemple: paramètre Prenez de l'URL:
String someString = ServletActionContext.getRequest().getParameter("someStringFromURL");
Encode la chaîne;
String encoded = URLEncoder.encode(someString, "ISO-8859-9");
Autres conseils
Trouver l'élément de connecteur approprié dans votre tomcat server.xml (deploy / jboss-web.deployer / server.xml pour les versions récentes) et ajoutez le URIEncoding
d'attribut avec une valeur de UTF-8
.