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 :

Echange données HTML JAVA


Sujet :

Servlets/JSP Java

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Décembre 2014
    Messages : 162
    Points : 73
    Points
    73
    Par défaut Echange données HTML JAVA
    Bonjour, bonjour,

    j’ai pas trop d’inspi là, je dois utiliser la technologie des servlets pour un problème classique, mais je me demande quelle méthode choisir.

    J’ai fait un tableau de données en HTML dans le code JAVA. Ce tableau contient les en-têtes NOM, PAYS, SERVEUR PRINCIPAL, SERVEUR SECONDAIRE (j’aime pas dire maître-esclave), DÉTAIL et MESSAGE.

    Dans une ligne, j’ai un serveur principal (deux à un moment) et plusieurs serveurs secondaires. Quand je clique sur le lien présent dans la case détail, je voudrais être dirigé vers une page contenant les serveurs de la même ligne ; je dois donc mettre ces serveurs dans un tableau.

    J’ai créé une autre classe qui récupérera ce dernier tableau et l’affichera. Mais comment mettre les noms des serveurs dans ce tableau ? En utilisant une fonction qui pose les serveurs dans un tableau (actionnée grâce à un onclick dans le code HTML) ? en envoyant les informations dans un formulaire ? en abandonnant et créant une page pour chaque ligne de serveurs en « dur » ?

    Avec un onclick j’ai du mal à voir le mécanisme ; comment faut-il que je l’écrive (l’écriture <div onclick=" + tab[0]= servPrin + "></div> ne fonctionne pas) ?

    Merci

  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
    tu génère un liens vers une page de la forme:

    http://tonserveur/taServlet?action=showServerDetails&server=wmx1.mondomaine.com&server=wmx5.mondomaine.com&server=wmz3.mondomaine.com&server=wmz89.mondomaine.com


    et dans ta servlet tu récupère par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String[] serveurs = request.getParameterValues("server");

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Décembre 2014
    Messages : 162
    Points : 73
    Points
    73
    Par défaut
    Merci pour ta réponse.

    Cependant, je ne comprends pas ce que signifient les wmx1, wmz89, etc.

    Je vais mettre ces deux morceaux de code dans la méthode doGet, je ne sais pas si c’est une bonne façon de procéder.

  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
    ben c'est juste des exemples, t'aura les noms de tes serveurs là

    http://tonserveur/taServlet?action=showServerDetails&server=athoum.blancheneige.com&server=grincheux.blancheneige.com

    si tu préfère

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Décembre 2014
    Messages : 162
    Points : 73
    Points
    73
    Par défaut
    J’ai deux méthodes,

    Code JAVA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //Remplie le tableau
    public void setVar(String[] var) {
    		this.var = var;
    	}
    Code JAVA : 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
     
    //Méthode pour afficher la première page HTML
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// Set response content type
    		response.setContentType("text/html");
     
    		// Actual logic goes here.
    		PrintWriter out = response.getWriter();
     
    out.println("http://10.1.1.108:8800/admin/test.html?"
    				+ "action=showServerDetails&server=Master"
    				+ "&server=SLAVE&server=SLAVE&"
    				+ "server=SLAVE");
     
    		String[] servers = request.getParameterValues("server");
    		setVar(servers);
    		for(int i=0; i<servers.length; i++){out.println(servers);}
     
    	}

    Résultat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Ljava.lang.String;@4d644765 [Ljava.lang.String;@4d644765 [Ljava.lang.String;@4d644765 [Ljava.lang.String;@4d644765

  6. #6
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for(int i=0; i<servers.length; i++){out.println(servers[i]);}

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Décembre 2014
    Messages : 162
    Points : 73
    Points
    73
    Par défaut
    Ouh ! Quelle stupidité ! C’est pas beaux à voir n_n Merci pour cette correction, ça fonctionne mieux.

    J’arrive à afficher le tableau dans ma première page, je vais essayer de le passer à la deuxième.

    EDIT : bizarrement, je n’arrive plus à voir ma première page. J’ai une erreur « 500 » et « java.lang.NullPointerException » qui me sont affichées.
    Visiblement, ça vient du
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for(int i=0; i<serveurs.length; i++){out.println(serveurs[i]);}
    C’est parce que lorsque je vais sur l’url de base, le programme cherche à afficher le tableau alors qu’il est vide tant que je n’ai pas cliqué sur le lien remplissant le tableau.

    Avec un petit
    Code JAVA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     if(serveurs != null){
    		for(int i=1; i<serveurs.length; i++){out.println(serveurs[i]);}
    		}
    tout rentre dans l’ordre.

    Je m’attelle à la deuxième page, qui me fait une erreur « 500 » (ou « 503 » dépends si j’écris « <load-on-startup>1</load-on-startup> » dans mon fichier .xml) :p -> c’est à cause du fait que j’ai un servlet pour chaque page HTML donc deux en tout et que je ne sais pas les séparer dans le web.xml.

    Je ne comprends pas mon erreur (parce que je ne connais pas assez bien les servlets).

    Mon fichier web.xml est :
    Code XML : 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
    <?xml version="1.0" encoding="ISO-8859-1" ?>
     
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    	version="2.4">
     
    	<display-name>Admin SOLR LMS</display-name>
    	<description>This is a simple web application with a source code organization based on the recommendations of the Application Developer's Guide.
        </description>
     
    	<servlet>
    		<servlet-name>test</servlet-name>
    		<servlet-class>package.servlet.Test</servlet-class>
    		<load-on-startup>1</load-on-startup>
    	</servlet>
     
    	<servlet-mapping>
    		<servlet-name>test</servlet-name>
    		<url-pattern>test.html</url-pattern>
    	</servlet-mapping>        
     
    	<servlet-mapping>
    		<servlet-name>default</servlet-name>
    		<url-pattern>/</url-pattern>
    	</servlet-mapping>
     
    	<servlet>
    		<servlet-name>detailpage</servlet-name>
    		<servlet-class>package.servlet.DetailPage</servlet-class>
    		<load-on-startup>2</load-on-startup>
    	</servlet>
    	<servlet-mapping>
    		<servlet-name>detailpage</servlet-name>
    		<url-pattern>detail.html</url-pattern>
    	</servlet-mapping>
     
     
    </web-app>

  8. #8
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Décembre 2014
    Messages : 162
    Points : 73
    Points
    73
    Par défaut
    Finalement, erreur facile, j’avais mal écris le nom de la méthode doGet, la page ne pouvait s’afficher.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. meilleure base de données avec java
    Par mial dans le forum JDBC
    Réponses: 11
    Dernier message: 10/11/2010, 11h49
  2. Réponses: 13
    Dernier message: 21/02/2006, 23h43
  3. Pool de connexion à une base de données en java
    Par ppaul127 dans le forum JDBC
    Réponses: 3
    Dernier message: 15/12/2005, 17h03
  4. [Debutant] Echange données entre pc distants
    Par orelero dans le forum Entrée/Sortie
    Réponses: 16
    Dernier message: 14/08/2005, 00h40
  5. base données avec java mono et multi utilisateurs
    Par Garion dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 03/12/2004, 09h20

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