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 :

[debutant] probleme de code :-(


Sujet :

Servlets/JSP Java

  1. #1
    Membre averti Avatar de flogreg
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 432
    Points : 392
    Points
    392
    Par défaut [debutant] probleme de code :-(
    Je débute et pour apprendre quelqu'un m'a passé ce bout de code mais ca ne marche pas et je ne comprend pas pourquoi! Ca doit etre un truc tout bete mais....

    ma premiere feuille en html :

    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
     
     
    <HTML>
    <HEAD>
    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <META name="GENERATOR" content="IBM WebSphere Studio">
    <TITLE>Accueil.html</TITLE>
    </HEAD>
    <BODY>
     
    <FORM action="/EssaisWeb/validation">
    <Table border=1>
    	<tr>
    		<td>Nom</td>
    		<td><input type="text" name=nom value=dupond></td>
    	<tr>
    		<td>Prenom</td>
    		<td><INPUT type="text" name=prenom value="pierre"></td>
    </table>		
    <INPUT type="submit" name="bouton1" value="OK"></FORM>
    </BODY>
    </HTML>
    quand je clic sur le bouton, il m'appelle ma servlet validation :

    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
     
    import java.io.IOException;
    import javax.servlet.Servlet;
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
     
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
     
     
    public class validation extends HttpServlet implements Servlet {
     
     
    	public void doGet(HttpServletRequest req, HttpServletResponse resp)
    		throws ServletException, IOException {
    			doAll(req,resp);
    	}
     
    	public void doPost(HttpServletRequest req, HttpServletResponse resp)
    		throws ServletException, IOException {
    			doAll(req,resp);
    	}
     
    	public void doAll(HttpServletRequest req, HttpServletResponse resp)
    		throws ServletException, IOException {
    			//recup des parametres
    			String nom = req.getParameter("nom");
    			String prenom = req.getParameter("prenom");
    			System.out.println(nom + " " + prenom);
     
    			HttpSession session = req.getSession();
    			ServletContext context = getServletContext();
    			System.out.println("session = "+session);
     
    			//création du bean
    			[u]MonBean mbean = new Monbean();[/u]
    //il plante ici mais ca me parait logique puisque mon bean n'est pas compilé! non?
    			mbean.setNom(nom);
    			mbean.setPrenom(prenom);
    			System.out.println("mbean= "+mbean);
     
    			//mise en session du bean
    			session.setAttribute("mbean",mbean);
     
    			context.getRequestDispatcher("recup.jsp").forward(req,resp);
     
    		}
    }
    et mon bean :

    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
     
    import java.io.Serializable;
     
    public class Monbean implements Serializable{
     
    	private String nom, prenom;
     
    	[u]public MonBean(){
    		super();
    	}[/u]
     
    	public void setNom(String s){
    		nom=s;
    	}
     
    	public void setPrenom(String s){
    		prenom=s;
    	}
     
    	public String getNom(){
    		return nom;
    	}
     
    	public String getPrenom(){
    		return prenom;
    	}
    }
    voilà il plante à la compile sur ce que j'ai souligné. Il me dit :
    - le type de retour est manquant pour la méthode ( sur le public MonBean)
    - Erreur de syntaxe sur le jeton "(", "." attendu ( sur le super(); )

    Je n'ai aucune idée et pourtant c'est un truc tout simple pour débutant!!! Ca me déprime d'être aussi nul...

  2. #2
    Membre du Club

    Inscrit en
    Avril 2004
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 43
    Points : 43
    Points
    43
    Par défaut
    salut regarde le nom de ta classe et de ton constructeur

    attention à la casse.

    @+

  3. #3
    Membre averti Avatar de flogreg
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 432
    Points : 392
    Points
    392
    Par défaut
    c'était bien ca!!! Qui a dit que c'était une erreur de débutant!!!

    Sinon encore un soucis mais à l'exécution dans recup.jsp :

    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
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <HTML>
    <HEAD>
    <%@ page 
    language="java"
    contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"
    %>
    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <META name="GENERATOR" content="IBM WebSphere Studio">
    <TITLE>recup.jsp</TITLE>
    </HEAD>
    <BODY>
     
    <jsp:useBean id="mbean" scope="session" type="Monbean" class="Monbean"/>
     
    <p>nom= <jsp:getProperty name="mbean" property="nom"/></p>
    <p>prenom = <jsp:getProperty name="mbean" property="prenom"/></p>
     
    </BODY>
    </HTML>
    Est ce que le code vous semble correct ou une autre erreur? Sinon si vous voullez je peux mettre l'erreur à l'exécution si ca peut vous aidez à chercher?

  4. #4
    Membre du Club

    Inscrit en
    Avril 2004
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 43
    Points : 43
    Points
    43
    Par défaut
    Salut,

    oui met le code d'erreur pour savoir exactement ou l'exécution bloque.

    Une idée comme ca a première vue.

    dans la définition de ton bean:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    <jsp:useBean id="mbean" scope="session" type="Monbean" class="Monbean"/>
    tu ne fournis pas le nom complet de ta classe (avec package) comme ca sans indication je te dirais de regarder de ce côté la.

    @+

  5. #5
    Membre averti Avatar de flogreg
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 432
    Points : 392
    Points
    392
    Par défaut
    l'erreur est assez longue :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Error 500: Impossible de compiler la classe du JSP Une erreur est survenue à la ligne 15 dans le fichier jsp : /recup.jsp Erreur de servlet générée : C:\Documents and Settings\Administrateur.PPSO\Mes documents\IBM\wasexpress51\workspace\.metadata\.plugins\com.ibm.etools.server.core\tmp0\cache\DefaultNode\server1\Essais\EssaisWeb.war\_recup.java:75: Class org.apache.jsp.Monbean not found. Monbean mbean = null; ^ Une erreur est survenue à la ligne 15 dans le fichier jsp : /recup.jsp Erreur de servlet générée : C:\Documents and Settings\Administrateur.PPSO\Mes documents\IBM\wasexpress51\workspace\.metadata\.plugins\com.ibm.etools.server.core\tmp0\cache\DefaultNode\server1\Essais\EssaisWeb.war\_recup.java:78: Class org.apache.jsp.Monbean not found. mbean= (Monbean) ^ Une erreur est survenue à la ligne 15 dans le fichier jsp : /recup.jsp Erreur de servlet générée : C:\Documents and Settings\Administrateur.PPSO\Mes documents\IBM\wasexpress51\workspace\.metadata\.plugins\com.ibm.etools.server.core\tmp0\cache\DefaultNode\server1\Essais\EssaisWeb.war\_recup.java:83: Class org.apache.jsp.Monbean not found. mbean = (Monbean) java.beans.Beans.instantiate(this.getClass().getClassLoader(), "Monbean"); ^ Une erreur est survenue à la ligne 17 dans le fichier jsp : /recup.jsp Erreur de servlet générée : C:\Documents and Settings\Administrateur.PPSO\Mes documents\IBM\wasexpress51\workspace\.metadata\.plugins\com.ibm.etools.server.core\tmp0\cache\DefaultNode\server1\Essais\EssaisWeb.war\_recup.java:102: Class org.apache.jsp.Monbean not found. out.print(JspRuntimeLibrary.toString((((Monbean)pageContext.findAttribute("mbean")).getNom()))); ^ Une erreur est survenue à la ligne 18 dans le fichier jsp : /recup.jsp Erreur de servlet générée : C:\Documents and Settings\Administrateur.PPSO\Mes documents\IBM\wasexpress51\workspace\.metadata\.plugins\com.ibm.etools.server.core\tmp0\cache\DefaultNode\server1\Essais\EssaisWeb.war\_recup.java:109: Class org.apache.jsp.Monbean not found. out.print(JspRuntimeLibrary.toString((((Monbean)pageContext.findAttribute("mbean")).getPrenom()))); ^ 5 errors
    sinon tu me parlais de quelque chose que je n'avais pas défini. Tu peux m'en dire plus?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 48
    Points : 46
    Points
    46
    Par défaut
    Il me semble que c'est toujours un pb de casse, mais là c'est dans tes fichiers de config que ça n'est pas répercuté. Soit tu épluches tes ficheirs pour les corriger, soit tu prends ton courage à deux mains et tu repars from scratch :-?
    Désolé de n'avoir rien de plus réjouissant à proposer...

  7. #7
    Membre du Club

    Inscrit en
    Avril 2004
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 43
    Points : 43
    Points
    43
    Par défaut
    C en effet encore un problème de casse.

    Heu pour etre sioux à la limite renomme ta classe en Monbean au lieu de
    MonBean est tout devrait être plus simple.

    Par contre n'en prend pas l'habitude même si chacun fait comme il veut cela ne respecte pas les regèles de syntaxes des nom de classe.

    voilà
    en plus d'apres ce que j'ai compris ce n'est pas professionel mais plus personnel donc n'hésite pas

    heu quand je te dis de renommer ta classe bien sur comme tu l'as désormais compris les constructeurs doivent suivre.

    @+

  8. #8
    Membre averti Avatar de flogreg
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 432
    Points : 392
    Points
    392
    Par défaut
    à priori ce n'est pas un probleme de casse puisque j'ai tout renommé en Monbean, ca n'a pas marché. J'ai recréé un autre projet et réécris en entier et ca plante toujours! Il doit y avoir un autre probleme !


    la page d'accueil accueil.htm dans WebContent
    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
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <HTML>
    <HEAD>
    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <META name="GENERATOR" content="IBM WebSphere Studio">
    <META http-equiv="Content-Style-Type" content="text/css">
    <LINK href="theme/Master.css" rel="stylesheet" type="text/css">
    <TITLE>Accueil.html</TITLE>
    </HEAD>
    <BODY>
    <FORM action="servlet/validation">
    <Table border=1>
    	<tr>
    		<td>Nom</td>
    		<td><input type="text" name=nom value=dupond></td>
    	<tr>
    		<td>Prenom</td>
    		<td><INPUT type="text" name=prenom value="pierre"></td>
    </table>		
    <INPUT type="submit" name="bouton1" value="OK"></FORM></BODY>
    </HTML>

    la servlet validation.java dans JavaSource
    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
     
    import java.io.IOException;
    import javax.servlet.Servlet;
    import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
     
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
     
     
    public class validation extends HttpServlet implements Servlet {
     
     
    	public void doGet(HttpServletRequest req, HttpServletResponse resp)
    		throws ServletException, IOException {
    			doAll(req,resp);
    	}
     
    	public void doPost(HttpServletRequest req, HttpServletResponse resp)
    		throws ServletException, IOException {
    			doAll(req,resp);
    	}
     
    	public void doAll(HttpServletRequest req, HttpServletResponse resp)
    		throws ServletException, IOException {
    			//recup des parametres
    			String nom = req.getParameter("nom");
    			String prenom = req.getParameter("prenom");
    			System.out.println(nom + " " + prenom);
     
    			HttpSession session = req.getSession();
    			ServletContext context = getServletContext();
    			System.out.println("session = "+session);
     
    			//création du bean
    			Monbean mbean = new Monbean();
    			mbean.setNom(nom);
    			mbean.setPrenom(prenom);
    			System.out.println("mbean= "+mbean);
     
    			//mise en session du bean
    			session.setAttribute("mbean",mbean);
     
    			context.getRequestDispatcher("recup.jsp").forward(req,resp);
     
    		}
    }

    le bean Monbean dans JavaSource

    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
     
    import java.io.Serializable;
     
    public class Monbean implements Serializable{
     
    	private String nom, prenom;
     
    	public Monbean(){
    		super();
    	}
     
    	public void setNom(String s){
    		nom=s;
    	}
     
    	public void setPrenom(String s){
    		prenom=s;
    	}
     
    	public String getNom(){
    		return nom;
    	}
     
    	public String getPrenom(){
    		return prenom;
    	}
    }
    ma JSP recup.jsp dans Webcontent

    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
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <HTML>
    <HEAD>
    <%@ page 
    language="java"
    contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"
    %>
    <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <META name="GENERATOR" content="IBM WebSphere Studio">
    <TITLE>recup.jsp</TITLE>
    </HEAD>
    <BODY>
     
    <jsp:useBean id="mbean" scope="session" type="Monbean" class="Monbean" />
    <p>nom = <jsp:getProperty name="mbean" property="nom"/></p>
    <p>prenom = <jsp:getProperty name="mbean" property="prenom"/></p>
     
    </BODY>
    </HTML>
    Est ce une erreur grossiere de code ou bien un probleme de configuration? Je suis sous Websphere.

    Merci pour votre aide au fait

  9. #9
    Membre du Club

    Inscrit en
    Avril 2004
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 43
    Points : 43
    Points
    43
    Par défaut
    quel est ton message d'erreur???

    toujours le même???

    @+

  10. #10
    Membre averti Avatar de flogreg
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 432
    Points : 392
    Points
    392
    Par défaut
    oui toujours pareil à l'execution au lieu de m'afficher ma page, il m'affiche le message d'erreur que j'ai posté plus haut! Ca m'enerve de bloquer sur des trucs basiques....

    Je crois que je vais m'inscrire au cours du soir!!!

  11. #11
    Membre du Club

    Inscrit en
    Avril 2004
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 43
    Points : 43
    Points
    43
    Par défaut
    Heu t'as classe Monbean est bien accessible selon ton classpath???

    Est elle par exemple sous le répertoire classes du WEB-INF de ton war: EssaisWeb.

    @+

  12. #12
    Membre averti Avatar de flogreg
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 432
    Points : 392
    Points
    392
    Par défaut
    j'ai bien un Monbean.class dans le répertoire WebContent/WEB-INF/classes/Monbean.class . Je pense que c'est de ca dont tu parlais?

    Par contre quand j'essaye de l'ouvrir il me met un message :
    "Impossible d'ouvrir l'éditeur sur Monbean.class. Le fichier classe ne se trouve pas dans le chemin d'accès aux classes"

    C'est normal ca?

  13. #13
    Membre du Club

    Inscrit en
    Avril 2004
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 43
    Points : 43
    Points
    43
    Par défaut
    Ok place ton source MonBean.java dans un package: monpackage

    et fais l'import suivant en plus dans ta JSP:

    et ajoute donc dans la déclaration de ton bean

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    <%@page import="monpackage.Monbean"%>
     
    <jsp:usebean ... class=monpackage.Monbean>
    ca devrait marcher.

    je me suis placé dans le même cas que toi et j'ai eu la même erreur, je ne sais pas exactement pourquoi.


    @+

  14. #14
    Membre averti Avatar de flogreg
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2004
    Messages
    432
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 432
    Points : 392
    Points
    392
    Par défaut
    bon j'ai essayé de créer un autre package mais ca me bousiller tout mes liens! donc j'ai fait ca dans mon recup.jsp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <%@page import="Monbean"
    et ca marche!!!! Il ne me reste plus qu'à tester la connexion à la base de données et je pourrai commencer à développer!!!

    En tout cas MERCI pour avoir pris du temps pour me répondre et pour votre patience. D'ici 2 ou 3 ans (enfin quand je maitriserai un peu mieux)je vous revaudrait peut etre ça ;-)

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 48
    Points : 46
    Points
    46
    Par défaut
    Paradoxalement, c'est nous qui te remercions (en tout cas moi ) : il est trop rare de voir un utilisateur du forum suffisement poli pour remercié une fois leur problème résolu, même par leur soin!
    Et là, y'a même le tag alors que demander de plus!

    Continue comme ça, et ça sera toujours un plaisir d'essayer de t'aider.

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

Discussions similaires

  1. [debutant] probleme connectionstring code-behind
    Par noname_971 dans le forum Accès aux données
    Réponses: 1
    Dernier message: 29/10/2008, 12h48
  2. [Débutant] Problème de code(Diagramme de Gantt)
    Par H1B4K dans le forum Général Java
    Réponses: 5
    Dernier message: 21/10/2006, 12h49
  3. Réponses: 2
    Dernier message: 23/05/2006, 09h44
  4. [DEBUTANT] probleme de traduction de code
    Par kamshaa dans le forum Langage
    Réponses: 2
    Dernier message: 19/05/2006, 15h23
  5. [debutant] Probleme pour dessiner un simple cube
    Par scorpiwolf dans le forum DirectX
    Réponses: 6
    Dernier message: 02/07/2003, 20h29

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