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 :

[Servlet] Récupérer des infos de la bdd à afficher dans jsp


Sujet :

Servlets/JSP Java

  1. #1
    Membre régulier
    Inscrit en
    Mars 2002
    Messages
    240
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 240
    Points : 102
    Points
    102
    Par défaut [Servlet] Récupérer des infos de la bdd à afficher dans jsp
    bonjour,

    le web.xml contient une jsp de démarrage d'identification
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <welcome-file-list>
      <welcome-file>identification.jsp</welcome-file>	
    </welcome-file-list>
    Cette jsp doit afficher une liste déroulante en utilisant la balise Struts <html: select>
    Les données qui alimentent la liste déroulante sont stockées dans une base de données

    Mais comment les récupérer
    avant
    l'affichage de la jsp ?

    Nota: j'utilise Struts

  2. #2
    zl
    zl est déconnecté
    Membre régulier
    Inscrit en
    Août 2005
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 75
    Points : 90
    Points
    90
    Par défaut
    Dans la servlet principale de ton application, tu utilises la méthode

    Pour récuperer ta liste, tu la mets ensuite dans un bean que tu mets ensuite dans la session.

    Zl.

  3. #3
    Membre régulier
    Inscrit en
    Mars 2002
    Messages
    240
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 240
    Points : 102
    Points
    102
    Par défaut
    oui mais si je comprend bien la servlet principale est une servlet du framework Struts : ActionServlet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    	<servlet>
    		<servlet-name>action</servlet-name>
    		<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
     
    ....
     
    	<servlet-mapping>
    		<servlet-name>action</servlet-name>
    		<url-pattern>*.do</url-pattern>
    Il faudrait que je déclare ma servlet principale à partir de ActionServlet et que je surcharge la méthode Init() ? et ensuite que le mapping ci-dessus pointe sur ma servlet ...
    Est ce exact ?

  4. #4
    Expert éminent

    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
    Points : 7 778
    Points
    7 778
    Par défaut
    Tu peux déclarer une servlet d'initialisation qui s'exécutera avant celle de Struts en mettant le load-on-startup à 1 comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <servlet>
        	<servlet-name>initServlet</servlet-name>
        	<servlet-class>test.InitServlet</servlet-class>
        	<load-on-startup>1</load-on-startup>
    </servlet>
    et load-on-startup à 2 pour celle de struts :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
      <servlet>
        <servlet-name>action</servlet-name>
        <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
        <init-param>
          <param-name>config</param-name>
          <param-value>/WEB-INF/struts-config.xml</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
      </servlet>
    Et tu mets le code qui constitue ta liste dans la méthode init() de ta servlet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public class InitServlet extends HttpServlet
    {
        public void init()
        { 
           // code de constitution de la liste
        }
        public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
        {
            super.doGet(request, response);
        }
    }
    Il ne faut pas coder de mapping pour cette servlet dans le web.xml
    Modératrice Java - Struts, Servlets/JSP, ...

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 71
    Points : 77
    Points
    77
    Par défaut
    Ou encore mieux, un filtre !

    Comment déclarer un filtre dans le fichier web.xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        <filter>
        	<filter-name>WelcomFilter</filter-name> <filter-class>fr.tonpackage.WelcomeFilter</filter-class>
        </filter>
     
    <filter-mapping>
            <filter-name>WelcomFilter</filter-name>
            <url-pattern>/identification.jsp</url-pattern>
        </filter-mapping>
    Comment implémenter un filtre :

    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
     
     
    import java.io.IOException;
     
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    //import javax.servlet.ServletContext;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.servlet.http.HttpSession;
     
    public class WelcomeFilter implements Filter {
     
    	//private ServletContext context; 
     
    	/* (non-Javadoc)
    	 * @see javax.servlet.Filter#init(javax.servlet.FilterConfig)
    	 */
    	public void init(FilterConfig fg) throws ServletException {
    		//context = fg.getServletContext(); A décommenter si nécessaire
    	}
     
     
    	/* (non-Javadoc)
    	 * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
    	 */
    	public void doFilter(	ServletRequest request, 
    							ServletResponse response,
    							FilterChain chain) 
    		throws IOException, ServletException {
     
    		boolean change = false;
     
                    //Il faut convertir les objets ServletRequest et ServletResponse car les filtres utilisent les objets génériques, non adaptés pour http
    		HttpServletRequest myRequest = (HttpServletRequest) request;
    		HttpServletResponse myResponse = (HttpServletResponse) response;
    		HttpSession session = myRequest.getSession();
     
    		//Tout ce que tu veux faire avant l'appel à ta jsp
     
    		chain.doFilter(request, response);
     
                    //Tout ce que tu veux faire après l'envoi de la réponse
     
    	}
     
    	/**
    	 * Destruction du filtre
    	 */
    	public void destroy() {
    		//Opérations à faire à la destruction du filtre
    	}
     
    }
    Bonne chance pour la suite...

  6. #6
    Membre régulier
    Inscrit en
    Mars 2002
    Messages
    240
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 240
    Points : 102
    Points
    102
    Par défaut
    merci pour toutes ces infos
    je devrais m'en sortir !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/05/2011, 14h01
  2. Selection des infos != entre 2 bdd
    Par agencep dans le forum HyperFileSQL
    Réponses: 0
    Dernier message: 10/11/2009, 18h31
  3. [Google Maps] Afficher des infos après clic sur un point
    Par jbaudin dans le forum APIs Google
    Réponses: 0
    Dernier message: 24/12/2008, 11h54
  4. Réponses: 2
    Dernier message: 26/01/2007, 14h58
  5. Réponses: 4
    Dernier message: 11/05/2006, 14h41

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