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 :

importer une class java dans page jsp


Sujet :

Servlets/JSP Java

  1. #1
    Membre Expert Avatar de Nemesys
    Profil pro
    �tudiant
    Inscrit en
    Mars 2006
    Messages
    1 895
    D�tails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 895
    Par d�faut importer une class java dans page jsp
    Bonjour,

    J'ai un fichier .class que je souhaite importer dans une page jsp. Je sais qu'il faut utiliser <%@ page import= ....> mais apr�s je ne sais pas comment le mettre en oeuvre ! ceci dans le but d'appeler une m�thode de cette classe lors de l'envoi d'un formulaire.

    Merci

  2. #2
    Membre �clair� Avatar de adil_vpb
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Ao�t 2006
    Messages
    326
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 39
    Localisation : France

    Informations professionnelles :
    Activit� : Chef de projet MOA
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Ao�t 2006
    Messages : 326
    Par d�faut
    bonjour,
    par exemple t'as le package com.pconnection :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    public class connection {
    String err="non erreur";
        public String GetErr(){ //return des erreurs !
        return err; 
        }
    }
    et sur ta pag jsp tu met :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <%@ page contentType="text/html; charset=iso-8859-1" language="java" import="java.sql.*,com.pconnection.*, java.util.* "%>
    com.pconnection c'est le package qui regroupe tes classes, et qui se trouve dans WEB-INF/classes si tu travaille sous Tomcat,
    apres dans le scriptling de ta page jsp tu met :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    <%
    connection con=new connection();
    out.println(con.GetErr());
    %>
    et ca doit march� !!!

  3. #3
    Membre �clair� Avatar de adil_vpb
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Ao�t 2006
    Messages
    326
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 39
    Localisation : France

    Informations professionnelles :
    Activit� : Chef de projet MOA
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Ao�t 2006
    Messages : 326
    Par d�faut
    regarde comme m�me dans le forum :
    ce type de question est d�j� pos� :
    http://www.developpez.net/forums/sho...d.php?t=280466

    si j'ai bien compris, c'est presque ce qui tu cherches !


  4. #4
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    23
    D�tails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 23
    Par d�faut
    Pour ma part, j'utilise Struts la plupart du temps donc ce genre de pb ne se pose pas. De plus, je ne suis pas certain que l'on puisse assimiler une m�thode � un �v�nement directement dans ta page *.jsp !

    sinon, si ton *.class est bien dans le r�pertoire WEB-INF/classes (ac tous ces packages), pas n�cessairement besoin de l'importer. Fais y appelle en nommant tes packages (ex : package.MaClasse). Pour note, qd je fais �a, c'est que mes .class sont bien rang�s ou que le *.jar du projet initial o� se trouve la classe en question est bien dans WEB-INF/lib

  5. #5
    Membre Expert Avatar de Nemesys
    Profil pro
    �tudiant
    Inscrit en
    Mars 2006
    Messages
    1 895
    D�tails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 895
    Par d�faut
    re,

    tout d'abord merci, mais je comprend toujours mal.

    On me livre le dossier "WEB-INF" de Tomcat qui comporte un sous dossier "classes" avec le fichier.class dedans et qui comporte le fichier web.xml.
    j'ai une methode on l'appelera "Methode" issu du fichier.java et il faut que j'y fasse appel par une page JSP. Je pense deja avoir �t� plus clair et je n'ai vraiment que ca sous le coude pour faire fonctionne la servlet depuis JSP.

    Que faire exactement dans la page JSP? et ou faut il la placer par rapport au repertoire WEB-INF?

    merci

  6. #6
    Expert confirm�

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par d�faut
    Faudrait nous en dire plus sur ta classe java.
    La m�thode renvoie-t'elle un objet ?
    Que veux-tu afficher dans la jsp ?
    Avec un peu de code, je pense qu'on t'aidera plus facilement.

  7. #7
    Membre confirm� Avatar de NizarK
    Inscrit en
    Mars 2007
    Messages
    189
    D�tails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 189
    Par d�faut
    Est ce que tu sais si la classe dont tu parle est une servlet ..
    sans ce cas :
    tu suis le chemin de ton fichier .class dans le r�pertoire classes sous WEB-INF
    Tu ouvres ensuite le fichier web.xml et tu essaies de trouver le m�me chemin dans les balises <servlet>
    Un fois le nom de ta servlet rep�r� ( balise <servlet-name> ) tu cherche dans le m�me fichier cette entr�e dans les balises <servlet-mapping> et tu r�cup�re le chemin url-mapping...

    C'est ce chemin que tu appelleras dans ta jsp .. normalement dans l'attribut action de ton formulaire ..

  8. #8
    Membre confirm� Avatar de NizarK
    Inscrit en
    Mars 2007
    Messages
    189
    D�tails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 189
    Par d�faut
    sinon ton import se fait tout simplement de la mani�re suivante dans la jsp :

    <%@ page import="..arborescence....MaClasse" %>

    o� arborescence correspond au chemin de ta classe dans WEB-INF/classes
    exemple com.mesclasses.classe..

    ATTENTION : tu ne peux pas placer ton point class o� tu veux car le package a d� �tre sp�cifi� lors de la cr�ation de la classe..tu dois suivre cette m�me arborescence..

    il suffit ensuite de faire :

    <%
    Maclasse M = new Maclasse();
    M.mamethode();
    %>

  9. #9
    Membre Expert Avatar de Nemesys
    Profil pro
    �tudiant
    Inscrit en
    Mars 2006
    Messages
    1 895
    D�tails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 895
    Par d�faut
    Voila j'ai un repertoire "test" compos� de ceci :



    Mon fichier class contient une seule m�thode � laquelle je voudrais faire appel.
    Deja est ce que mes fichiers sont bien plac�s, en manquent ils etc.. ?

    dans le web.xml j'ai ceci :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     <servlet>
            <servlet-name>MaClasse</servlet-name>
            <servlet-class>MaClasse</servlet-class>
        </servlet>
     
    <servlet-mapping>
            <servlet-name>MaClasse</servlet-name>
            <url-pattern>/MaClasse</url-pattern>
        </servlet-mapping>
    Quel est donc le chemin exact que je dois mettre dans "page import=" du fichier Monfichier.jsp ?


    merci

  10. #10
    Expert confirm�

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par d�faut
    Tu as d�fini ta classe dans le web.xml comme une servlet.
    Est-ce vraiment une servlet ? h�rite-t'elle de HttpServlet ?

    Si ce n'est pas le cas, il ne faut pas la d�finir dans le web.xml.

    De plus, il faut mettre ta classe dans un package et coder la directive page comme ceci dans la jsp :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <%@ page import="tonPackage.MaClasse" %>

  11. #11
    Membre Expert Avatar de Nemesys
    Profil pro
    �tudiant
    Inscrit en
    Mars 2006
    Messages
    1 895
    D�tails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 895
    Par d�faut
    Citation Envoy� par c_nvy
    Tu as d�fini ta classe dans le web.xml comme une servlet.
    Est-ce vraiment une servlet ? h�rite-t'elle de HttpServlet ?

    Si ce n'est pas le cas, il ne faut pas la d�finir dans le web.xml.

    De plus, il faut mettre ta classe dans un package et coder la directive page comme ceci dans la jsp :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <%@ page import="tonPackage.MaClasse" %>

    oui c'est vraiment une servlet donc c'est bon.

    "Il faut mettre ta classe dans un package" => c'est � dire ? indiquer "package test;" par exemple dans le .java et recompiler ?

    puis ensuite mettre
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <%@ page import="test.MaClasse" %>
    c'est bien �a?

    si oui j'essairais.

    merci

  12. #12
    Membre Expert Avatar de willoi
    Profil pro
    D�veloppeur informatique
    Inscrit en
    D�cembre 2006
    Messages
    1 355
    D�tails du profil
    Informations personnelles :
    �ge : 52
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : D�cembre 2006
    Messages : 1 355
    Par d�faut
    Oui c'est exactement ca pour la declaration d'un package.
    l'import est correct aussi.

  13. #13
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    25
    D�tails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 25
    Par d�faut nous somme ici pour partager le savoir
    vous pouvez voir les tuto de Michel Baron ds developpez.com sur les jsp

  14. #14
    Membre Expert Avatar de Nemesys
    Profil pro
    �tudiant
    Inscrit en
    Mars 2006
    Messages
    1 895
    D�tails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 895
    Par d�faut
    merci l'importation fonctionne.. maintenant niveau utilisation �a ne parait pas �vident pour un d�butant dans la matiere comme moi ..

    voici le formulaire 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
    <form name="form1" method="post" action="reponse.jsp">
            <table width="550" border="0" align="center" cellpadding="3" cellspacing="1" style="border: 1px solid #3399FF;">
     
            <tr>
                <td width="25%"><p>&nbsp;Catégorie :</p> </td>
     
                <td width="75%"><select name="categorie">
                  <option value="0" selected>Choisissez une catégorie</option>
                  <option value="1" >Teacher</option>
                  <option value="2" >Student</option>
    			  <option value="3" >Staff</option>
    			  <option value="4" >Admin</option>
                </select></td>
              </tr>
     
    		  <tr>
                <td><p>&nbsp;Nom d'utilisateur :</p></td>
                <td><input name="nomutilisateur" size="20" maxlength="40" type="text" value="">
    			<input type="submit" value="OK">
                </td>
              </tr>
    et la 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
    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
    package argos;
     
    import java.io.IOException;
    import java.io.PrintWriter;
     
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
     
    import java.util.*;
    import java.util.Hashtable;
    import java.util.Enumeration;
     
    import javax.naming.*;
    import javax.naming.directory.*;
     
    public class MoteurRecherche extends HttpServlet {
    private String ListeNoms;
     
        public String[] ChercherNom(String nom,String categorie) 
        {
     
            String ListeNoms[] = null;
            String Fournisseur = "com.sun.jndi.ldap.LdapCtxFactory" ;
            String Hote = "ldap://172.16.1.1:389";
            String base = "dc=personnes,dc=ac-bordeaux,dc=fr";
            String rechbase;
            Hashtable env = new Hashtable( ) ;
            env.put(Context.INITIAL_CONTEXT_FACTORY, Fournisseur) ;
            env.put(Context.PROVIDER_URL , Hote);
            try {
                DirContext ctx = new InitialDirContext(env) ;
                SearchControls constraints = new SearchControls();
                constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
                rechbase = "eduPersonAffiliation="+ categorie +"," + base;
     
                NamingEnumeration results = ctx.search(rechbase, "*"+nom+"*",constraints);
                //Affichage des attributs
                while (results != null && results.hasMore())
                {
                    SearchResult entry = (SearchResult)results.next();
                    //Affichage du DN
     
                    Attributes attrs = entry.getAttributes();
                    if (attrs == null)
                    {
                        //afficher erreur première ligne du tableau
                    }
                    else {
                        //Affichage de chaque attribut
                        for (NamingEnumeration attEnum = attrs.getAll(); attEnum.hasMoreElements();)
                        {
                            Attribute attr = (Attribute)attEnum.next();
                            String attrId = attr.getID();
                            //Afficher les valeurs de l'attribut
                            Enumeration vals;
                            int i = 0;
                            //ICI IL FAUT METTRE DANS UN TABLEAU LES BONS ATTRIBUTS !
                            for (vals = attr.getAll();vals.hasMoreElements(); )
                            {
                               // out.println("<p><strong>"+ attrId + "</strong>: " + vals.nextElement() + "</p>");
                                if (attrId == "cn")
                                      ListeNoms[i++] = (String) vals.nextElement();
     
                            }
                        }
                    }
                }
     
            }
            catch (javax.naming.NamingException e){
                e.printStackTrace();
            }
            return ListeNoms;
        }
    }
    cette servlet retourne une liste de noms qu'il faut r�cup�rer en JSP donc j'essai par un fichier reponse.jsp

    J'ai lu qu'il fallait utiliser les java beans pour cela

    genre :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <jsp:useBean id="mybean" scope="session" class="argos.MoteurRecherche" />
    ici il faut donc pouvoir utiliser la m�thode "ChercherNom" pour que la liste nous soit retourn�e.

    Une id�e du comment faire?

    Merci

  15. #15
    Expert confirm�

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    D�tails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par d�faut
    Alors, tout d'abord, ta classe MoteurRecherche n'a rien d'une servlet.
    Donc, il n'est pas utile de la faire h�riter de HttpServlet.
    Ajoute-lui un constructeur comme ceci :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    public MoteurRecherche()
    {}
    Ensuite, tu cr�es une servlet qui va te permettre de r�cup�rer le nom et la cat�gorie s�lect�e, de faire appel � la m�thode ChercherNom de MoteurRecherche et de mettre la liste des noms dans le scope request comme ceci :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    public class TaServlet extends HttpServlet {
     
    public void service (HttpServletRequest req,HttpServletResponse resp) throws ServletException, IOException
    {
    	String nom= req.getParameter("nomutilisateur") ;
    	String categorie= req.getParameter("categorie") ;
    	MoteurRecherche moteurRecherche = new MoteurRecherche();
    	String[] listeNoms = moteurRecherche.ChercherNom(nom,categorie);
    	req.setAttribute("listeNoms",listeNoms);
    	RequestDispatcher disp=getServletContext().getRequestDispatcher("/reponse.jsp");
    	disp.forward(req,resp) ;
    }
    }
    Ne pas oublier de d�finir le mapping de cette servlet dans le web.xml.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     <servlet>
            <servlet-name>TaServlet</servlet-name>
            <servlet-class>tonPackage.TaServlet</servlet-class>
        </servlet>
     
    <servlet-mapping>
            <servlet-name>TaServlet</servlet-name>
            <url-pattern>/TaServlet</url-pattern>
        </servlet-mapping>
    Ensuite, dans ta premi�re jsp, dans l'attribut action de la balise form, tu codes le nom de la servlet comme ceci :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <form name="form1" method="post" action="<%=request.getContextPath()+"/TaServlet"%>">
    Elle sera donc appel�e au submit du formulaire.

    Et dans reponse.jsp :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <jsp:useBean id="listeNoms" scope="request" type="java.lang.String[]"/>
    <%
            for (int i=0; i<listeNoms.length;i++)
            {
                    String nom=listeNoms[i] ;
    %>
    	<p><%=nom%></p>
    <%
            }
    %>
    en esp�rant n'avoir rien oubli� et n'avoir pas fait d'erreurs dans le code post� car non test�.

Discussions similaires

  1. probleme d'affichage d'une applet java dans page jsp
    Par wafabrj dans le forum Applets
    R�ponses: 1
    Dernier message: 31/10/2012, 20h54
  2. importer une classe java dans une page jsp
    Par chafik_si3 dans le forum Servlets/JSP
    R�ponses: 2
    Dernier message: 26/03/2009, 15h51
  3. inclure une class java dans page jsp
    Par psycho_xn dans le forum Servlets/JSP
    R�ponses: 3
    Dernier message: 21/06/2007, 17h11
  4. appel d'une classe java dans un jsp
    Par kanzarih dans le forum Servlets/JSP
    R�ponses: 3
    Dernier message: 01/03/2007, 13h06
  5. reconnaissance d'une class java dans 1 jsp
    Par launas dans le forum Tomcat et TomEE
    R�ponses: 2
    Dernier message: 24/08/2006, 17h39

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