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 :

erreur servlet et jsp


Sujet :

Servlets/JSP Java

  1. #1
    Membre du Club
    Inscrit en
    Mars 2011
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 232
    Points : 47
    Points
    47
    Par défaut erreur servlet et jsp
    salut,

    mon but est de modifier des donnés dans un fichier xml

    le fichier test.xml
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <entreprises>
       <entreprise>
          <local>pari</local>
          <capacite>50</capacite>
     
       </entreprise>
     <entreprise>
          <local>suisse</local>
          <capacite>20</capacite>
     
     
       </entreprise>
     
     
    </entreprises>



    je travail vec une page acceuil.jsp qui sert envoyes des donnes de page jsp vers servlet

    le contenu de la page jsp est :
    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
    20
    21
    22
    23
    24
    25
    26
    27
     
     
     
     
    <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
        pageEncoding="ISO-8859-1"%>
     
    <%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
     
     
     
    <head>
    <title>Selection Serveurs</title>
    </head>
    <body>
     
     
    <form name=\"frm\" action='/MonProjet/TestServlet' method=\"Post\">
    <input type="text" value="pari" name="nom">
    <input type="text" value="69" name="capacite">
     
    <input type="submit" value="envoyer"/> 
     
    </body>
    </html>



    le code de la servlet est :
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    public class TestServlet extends HttpServlet {
    	private static final long serialVersionUID = 1L;
     
    	/**
    	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		try {
     
     
    response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    String localactuelle= request.getParameter("nom");
    String nouvelleCapacite = request.getParameter("capacite");
     
    SAXBuilder sxb=new SAXBuilder();
    Document document = null;
    document = sxb.build(new File("test.xml"));
    Element enteprises=document.getRootElement();
    if(entreprise.getChild("local").getText().equals(localactuelle)){
       entreprise.getChild("capatite").setText(nouvelleCapacite);
    }
    XMLOutputter xmlOutput= new XMLOutputter(Format.getPrettyFormat());
    xmlOutput.output(document, new FileOutputStream("test.xml"));
     
     
    			getServletContext().getRequestDispatcher("/Acceuil.jsp").forward(request, response);
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
     
    	/**
    	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		try {
     
    			getServletContext().getRequestDispatcher("/Acceuil.jsp").forward(request, response);
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
    }
    le deux variables :
    localactuelle et nouvelleCapcite seront remplir depuis les données envoyées depuis la page acceuil.jsp


    scenario d'exécution :

    si la page jsp envois ces valeur :pour local:pari
    pour capacité:69

    pour modifier la capacité de l'entreprise qui a comme local :pari

    par 69

    donc la valeur de capacite devienne 69 et pas 50



    juste j'ai besoin d'aide pour corriger mon code


    merci d'avance

  2. #2
    Membre éprouvé Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Points : 1 161
    Points
    1 161
    Par défaut
    Bonjour

    est-ce que tu as une trace d'erreur ?
    ou bien tu n'obtiens pas d'erreur et le fichier n'est pas modifier correctement ?
    ou autre ...

  3. #3
    Membre du Club
    Inscrit en
    Mars 2011
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 232
    Points : 47
    Points
    47
    Par défaut
    merci pour votre réponse

    en premier lieu comme je dis mon but est de modifier des donnes dans le fichier test.xml grâce au données envoyer depuis la page Acceuil.jsp

    ces donnes seront récupérer par le servlet qui va traiter la modification

    et va ma rediriger vers la même page Acceuil.js

    juste je veux savoir est ce que mon code est correcte syntaxiquement

    merci d'avance

  4. #4
    Membre éprouvé Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Points : 1 161
    Points
    1 161
    Par défaut
    ok
    je ferais les choses un peu différement
    1) OK pour la JSP rien à changer à part le fait que je ne comprends pas pourquoi tu as des \ dans les attributs de ton tag form

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form name=\"frm\" action='/MonProjet/TestServlet' method=\"Post\">

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <form name="frm" action="/MonProjet/TestServlet" method="POST">
    2) ensuite la partie de ton code de ta servlet qui modifie le contenu de ton fichier XML je la mettrai dans une classe Service qui sera faite pour gérer ton fichier XML . Tu pourras la tester de manière unitaire sans passer par ta JSP.

    3) du coup ta servlet fait appel à cette classe service qui va lui répondre si la modification c'est bien passée ou bien ce que je te conseille c'est de laisser remonter les exceptions jusqu'à la servlet pour afficher un message d'erreur au cas où il y a un problème (fichier non trouvé, en lecture seule et j'en passe)

    4) l'instruction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    response.setContentType("text/html;charset=UTF-8");
    n'a rien à faire dans ta servlet

    tout autant que

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    PrintWriter out = response.getWriter();
    qui n'est pas réutilisé => inutile

    5) et enfin dans ta doPost je referais une redirection vers la doGet avec les parametres qu'il faut

    voilà tout je crois

  5. #5
    Membre du Club
    Inscrit en
    Mars 2011
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 232
    Points : 47
    Points
    47
    Par défaut
    merci pour votre réponse

    mais le code java qui modifie le donné dans le fichier test.xml ca marche pas

    j'utilisece code
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
     
     
    public class TestServlet extends HttpServlet {
    	private static final long serialVersionUID = 1L;
     
    	/**
    	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		try {
     
     
     
    String localactuelle= request.getParameter("nom");
    String nouvelleCapacite = request.getParameter("capacite");
     
    SAXBuilder sxb=new SAXBuilder();
    		Document document = null;
    		try {
    			document = sxb.build(new File("test.xml"));
    		} catch (JDOMException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		Element entreprises=document.getRootElement();
     
    		List<Element> en=entreprises.getChildren();
     
     
            for(Element entreprise:en){
     
     
     
     
            	String loc=entreprise.getChild("local").getText();
     
     
     
     
            if(loc.equals(localactuelle)){
     
    			entreprise.getChild("capatite").setText(nouvelleCapacite);
    		}
    		XMLOutputter xmlOutput= new XMLOutputter(Format.getPrettyFormat());
    		try {
    			xmlOutput.output(document, new FileOutputStream("test.xml"));
    		} catch (FileNotFoundException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
     
     
            }
    }
     
    	/**
    	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    	 */
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		try {
     
    			getServletContext().getRequestDispatcher("/Acceuil.jsp").forward(request, response);
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    	}
    }

    je test le code java a part mais il m'affiche erreur merci d'avance

  6. #6
    Membre du Club
    Inscrit en
    Mars 2011
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 232
    Points : 47
    Points
    47
    Par défaut
    juste je veux savoir est ce que le code de traitement de la modification est correcte ou non

    je la teste et il m'affiche merci d'avance

  7. #7
    Membre du Club
    Inscrit en
    Mars 2011
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 232
    Points : 47
    Points
    47
    Par défaut
    si je test avec un code java a part :
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
     
    String localactuelle= "pari";
    String nouvelleCapacite = "69";
     
    SAXBuilder sxb=new SAXBuilder();
    		Document document = null;
     
    			document = sxb.build(new File("test.xml"));
     
    		Element entreprises=document.getRootElement();
     
    		List<Element> en=entreprises.getChildren();
     
     
            for(Element entreprise:en){
     
     
     
     
            	String loc=entreprise.getChild("local").getText();
     
     
     
     
            if(loc.equals(localactuelle)){
     
    			entreprise.getChild("capatite").setText(nouvelleCapacite);
    		}
    		XMLOutputter xmlOutput= new XMLOutputter(Format.getPrettyFormat());
     
    			xmlOutput.output(document, new FileOutputStream("test.xml"));
     
     
            }
    il m'affiche même erreur null point exception

  8. #8
    Membre du Club
    Inscrit en
    Mars 2011
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 232
    Points : 47
    Points
    47
    Par défaut
    est ce quelqu'un a une idée sur ce genre de problème


    merci d'avance

  9. #9
    Membre du Club
    Inscrit en
    Mars 2011
    Messages
    232
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 232
    Points : 47
    Points
    47
    Par défaut
    aucune indication sur ce sujet

  10. #10
    Membre éprouvé Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Points : 1 161
    Points
    1 161
    Par défaut
    Encore une fois tu nous donnes pas la ligne où se situe l'erreur
    tu utilises quelle API ?

  11. #11
    Membre éprouvé Avatar de noOneIsInnocent
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    1 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 037
    Points : 1 161
    Points
    1 161
    Par défaut
    bon je viens de créer un projet sur netbeans et j'ai importé la lib de JDOM
    j'ai eu deux problèmes avec ton code :
    1) il ne trouvait pas mon fichier alors que je l'avais crée. Je te conseille de mettre un chemin absolu pour ton fichier XML

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      document = (Document) sxb.build(new File("c:\\test.xml"));
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    XMLOutputter xmlOutput= new XMLOutputter(Format.getPrettyFormat());
     
                   xmlOutput.output(document, new FileOutputStream("c:\\test.xml"));
    2) ton autre probleme vient tout simplement que ce n'est pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     if(loc.equals(localactuelle)){
                        entreprise.getChild("capatite").setText(nouvelleCapacite);
                     }
    mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     if(loc.equals(localactuelle)){
                        entreprise.getChild("capacite").setText(nouvelleCapacite);
                     }
    3) et enfin tu peux prendre exemple sur le tutoriel

    http://cynober.developpez.com/tutoriel/java/xml/jdom/

    pour faire une méthode pour chaque opération (lire,manipuler et enregistrer ton fichier)

    4) n'oublies pas le tag résolu

Discussions similaires

  1. Réponses: 3
    Dernier message: 24/07/2014, 11h30
  2. Erreur passage d'arraylist de servlet vers jsp
    Par padawan78 dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 10/04/2011, 23h52
  3. Erreur de servlet générée/JSP
    Par javator_zoubair dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 14/08/2006, 08h50
  4. [Debutant]contexte d'une Webapp servlet et jsp
    Par yahia dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 13/10/2003, 10h43
  5. erreur connection postgresql jsp
    Par tatay dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 24/06/2003, 13h50

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