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 :

Utilisation d'une méthode Java sur un bouton HTML


Sujet :

Servlets/JSP Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 38
    Points : 39
    Points
    39
    Par défaut Utilisation d'une méthode Java sur un bouton HTML
    Bonjour,

    Je développe actuellement une application d'administration de comptes.
    C'est un servlet dont le code utilise du java et du HTML. J'ai une liste déroulante défini sous HTML de name 'lst_login' qui se remplit grace à des logins récupérés depuis un fichier XML. J'aimerais lorsque je sélectionne ensuite tel ou tel login pouvoir récupérer différentes informations comme le nom, prénom ... (ces informations se trouvant dans mon fichier XML).
    Il faut donc que je récupère le login selectionné par l'utilisateur mais je ne vois pas comment faire.
    Faut-il que je code en java une méthode pour pouvoir récupérer le login sélectionné et donc par la suite garce à un parcours du fichier XML les données nom, prénom (mais le problème est comment j'applique cette méthode ensuite au bouton Afficher qui est un bouton HTML ?) ???
    Je ne vois pas comment faire ....

    Voici mon 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
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    import javax.servlet.*;
     
    import javax.servlet.http.*;
    import javax.xml.parsers.*; 
     
    import org.w3c.dom.*; 
     
    import org.xml.sax.*; 
     
    import java.io.*; 
    import org.w3c.dom.Document;
    import java.awt.*;
     
     
    public class ServletAdmin extends HttpServlet {
     
     
     
       	public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
     
     
    	        response.setContentType("text/html");
     
    	        PrintWriter out = response.getWriter();
     
    	        out.println("<html>");
     
    	        out.println("<head>");
    		out.println("<H4><center><br>Administration des Comptes </br></center></H4>");
    		out.println("Choisir un login : ");
     
    		out.println("<SELECT name='lst_login' size=1 >");
    		try{
     
    			// création d'une fabrique de documents
     
    			DocumentBuilderFactory fabrique = DocumentBuilderFactory.newInstance();
     
    			// création d'un constructeur de documents
     
    			DocumentBuilder constructeur = fabrique.newDocumentBuilder();
     
    			// lecture du contenu d'un fichier XML avec DOM
     
    			File xml = new File("/ubs/home/etud/2007/e0700714/UE5/Chat/uti.xml");
     
    			Document document = constructeur.parse(xml);
    			Element racine = document.getDocumentElement();
    			NodeList liste =  racine.getElementsByTagName("login");
    			for(int i=0; i<liste.getLength(); i++){
                        		Element e = (Element)liste.item(i);
    				out.println("<OPTION>"+e.getFirstChild().getNodeValue());
    			}
    		}catch(ParserConfigurationException pce){
     
    			out.println("Erreur de configuration du parseur DOM");
     
    			out.println("lors de l'appel à fabrique.newDocumentBuilder();");
     
    		}catch(SAXException se){
     
    			out.println("Erreur lors du parsing du document");
     
    			out.println("lors de l'appel à construteur.parse(xml)");
     
    		}catch(IOException ioe){
     
    			out.println("Erreur d'entrée/sortie");
     
    			out.println("lors de l'appel à construteur.parse(xml)");
     
    		}
     
    		out.println("</SELECT>");
    		out.println("<input type='button' text='Aff' value='Afficher'>");// onClick="+afficher()+">");
    		out.println("<br>");
    		out.println("<br>");
     
    	        out.println("<title>Administration des Comptes</title>");
     
    	        out.println("</head>");
     
    	        out.println("<body>");
    		out.println("<table style='width: 30%; text-align: left; margin-left: 2em; margin-bottom: 2em;' border='1' cellpadding='2' cellspacing='2'>");
     
    	        out.println("<tr><td> Login </td> <td> <input type=text name=login></td></tr>");
     
    		out.println("<tr><td> Nom </td> <td><input type=text name=nom></td></tr>");
     
    		out.println("<tr><td> Prenom </td> <td><input type=text name=prenom></td></tr>");
     
    		out.println("<tr><td> Adresse Mail </td> <td><input type=text name=mail></td></tr>");
    		out.println("<br>");
     
    	        out.println("</table>");
    		out.println("<input type='button' text='Supp' value='Supprimer'>");
    		out.println("</body>");
     
    	        out.println("</html>");
     
        	}
     
    }
    /*	private void afficher() {
    		Choice c = new Choice();
    		if (c.getSelectedItem() == "") {
    			System.out.println("Choisir un login");
    		}else{
    			int n;
    			n=c.getSelectedIndex();
    			System.out.println("Indice :"+n);
    		}
    	}
     
    }*/
    Si une ame charitable pouvait m'aider ...
    Merci d'avance !

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    ton html est pas bon! il manque le <form> par exemple autour de la sélection de login. Avec çà déjà, çà risque pas d'envoyer grand chose au serveur quand ti clique sur le bouton.

    Ensuite, quand t'as un form qui soumet ses valeur au servlet, la valeur de l'élément nomé X du form est accessible via getParameter() sur l'objet request.

  3. #3
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Avril 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2007
    Messages : 38
    Points : 39
    Points
    39
    Par défaut
    Merci pour ta réponse !
    Donc autour de ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    out.println("<OPTION>"+e.getFirstChild().getNodeValue());
    un <form> ca permettra de récupérer la valeur du login choisi ??

    Par contre j'ai pas très bien compris pour getParameter. Je m'y connais pas tant que çà en servlet, pourrais tu m'expliquer mieux comment utiliser le getParamater() sur l'objet request ? Par exemple, comment construire la requete ?

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Pour la requete, c'est le serveur qui te la fourni, quand le navigateur envoie le formulaire, je cite ton propre code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void doGet(HttpServletRequest request,
    quand à l'utilité du<form> pour envoyer un formulaire du client vers le serveur, je suggère que tu jette un oeil du coté du html et de ses tutoriaux avant de t'embarquer dans la programmation serveur.

  5. #5
    Membre actif
    Profil pro
    Developpeur
    Inscrit en
    Avril 2004
    Messages
    160
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Avril 2004
    Messages : 160
    Points : 212
    Points
    212
    Par défaut
    Pourquoi tu met ton code html dans la servlet???

    il vaut mieux passer par une jsp pour afficher ton html

    Dans ta servlet , tu construit ta liste des login et tu la met dans request:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     request.setAttribute("logins", taliste);
    et dans ta page tu récupére ta liste et tu la met dans ton select.

    Pour récuperer les information quand tu selectionne un login soit:

    - dans onchange de select ou lors du clique sur le bouton à toi de voir, tu fait appel à une autre servlet qui cherche le login dans ton fichier xml et récuperent les infos.
    - soit tu utilise d'ajax et comme ça tu peut afficher les info dans la meme page , dans une div par exemple , sans la rechargé

Discussions similaires

  1. Lancer une méthode java script depuis un bouton
    Par Blunt dans le forum ASP.NET
    Réponses: 4
    Dernier message: 08/01/2012, 15h25
  2. [XL-2007] Utiliser une méthode Replace sur un recordset, avant d'utiliser la méthode copyfromrecordset
    Par GarnierFlorian dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 06/09/2010, 11h00
  3. Mémoire utilisée par une méthode Java
    Par thierry_b dans le forum Général Java
    Réponses: 2
    Dernier message: 01/10/2009, 10h25
  4. Réponses: 6
    Dernier message: 24/03/2009, 16h17
  5. Réponses: 2
    Dernier message: 10/12/2008, 10h53

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