IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

Formulaire XMLHttpRequest servlet


Sujet :

Servlets/JSP Java

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 6
    Points : 4
    Points
    4
    Par défaut Formulaire XMLHttpRequest servlet
    Bonjour à tous,

    Mon problème depuis deux jours est le suivant :
    codage des caractères spéciaux :

    Formulaire + XMLHttpRequest + Servlet
    Dans le formulaire (HTML) rien de spéciale, prenant l’exemple d’un seul champs de text. « myText »
    Concernant XMLHttpRequest (javaScript), rien de spéciale aussi, récupération de l’objet « http_request » et :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Var myTextValue = document.elementById (« myTest »).value;
    var body = vra1=encodeURI(myTextValue);
    http_request.open("POST", url_de_servlet, true);
    http_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    http_request.setRequestHeader("Content-length", body.length);
    http_request.send(body);
    Coté serveur servlet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    response.setHeader("Cache-Control", "no-cache");
    	response.setContentType("text/html; charset=UTF-8");
    	try {
    		request.setCharacterEncoding("UTF-8");
    	} catch (UnsupportedEncodingException ex) {
    			ex.printStackTrace();
    		}
    for (Enumeration tEnum = request.getParameterNames();tEnum.hasMoreElements();)
    {
    	String key = (String)tEnum.nextElement(); 
    	System.out.println(key + " : ="+request.getParameter(key)+"=");
    	/*try {
    		String valeurUTF8 = URLDecoder.decode(request.getParameter(key), "UTF-8");
    		System.out.println(key + " : ="+ valeurUTF8 +"=");
    	} catch (UnsupportedEncodingException e) {
    		e.printStackTrace();
    	}*/
    }

    Exemple Test :
    Input : l'école ça coute des €
    Sortie : l'école ça coute des �

    quand je remplace encodeURI par escape les accent marche mais pas les autres caractères (€) tEnum est vide.

    Les fichiers utilisé sont normalement sauvegardé en « UTF-8 » par Eclipse.
    Version de JDK 1.4
    Tomcat 5.5

  2. #2
    Membre émérite
    Avatar de alexismp
    Homme Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 503
    Points : 2 777
    Points
    2 777
    Par défaut
    Il faut que l'encoding de la requête soit le même que celui de la réponse.
    Quel serveur utilises-tu?

    Tu peux regarder les différents exemples AJAX fournis dans NetBeans qui sont tous disponibles sous forme de projet près à l'exécution. Il y a aussi un "HTTP Monitor" qui devrait te permettre de comprendre ou se trouve ton problème.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    J'utilise JbossEclipse / Tomcat 5.5 sous WinXP

    J'ai fait un petit projet de test chez mois hier soir est tout va bien parcontre dans ce projet ça ne fonctionne pas.


    Citation Envoyé par alexismp
    Il faut que l'encoding de la requête soit le même que celui de la réponse.
    Quel serveur utilises-tu?

    Tu peux regarder les différents exemples AJAX fournis dans NetBeans qui sont tous disponibles sous forme de projet près à l'exécution. Il y a aussi un "HTTP Monitor" qui devrait te permettre de comprendre ou se trouve ton problème.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 6
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par laghsal
    J'utilise JbossEclipse / Tomcat 5.5 sous WinXP

    J'ai fait un petit projet de test chez mois hier soir est tout va bien parcontre dans ce projet ça ne fonctionne pas.
    Le problème en fait que l'encodage "encodeURI" ne fonctionne pas avec les scriptes "protected" dans web.xml (<security-constraint>) apparament c'est un problème de securité.

Discussions similaires

  1. Tester un formulaire avec servlet
    Par ulysse031 dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 31/07/2012, 09h06
  2. Différenciation Formulaire dans servlet pour pattern MVC
    Par philoo_le_foo dans le forum Servlets/JSP
    Réponses: 13
    Dernier message: 02/09/2009, 18h18
  3. Gestion Formulaire JSP -> Servlet -> JSP
    Par sisiniya dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 09/05/2009, 12h40
  4. envoyer les valeur d'un formulaire à une servlet
    Par samia13 dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 24/04/2007, 00h19
  5. [debutant][servlet]lien entre formulaire et servlet
    Par omega dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 05/03/2004, 08h54

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo