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

Struts 1 Java Discussion :

[Struts 1.3] executer servlet


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    408
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 408
    Par défaut [Struts 1.3] executer servlet
    Bonjour,

    J'ai une classe qui est bien réferencée dans le fichier xml struts conf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <action
          path="/Compteur"
          type="monpackage.Compteur"
          scope="request"
          unknown="false"
          validate="true"
        >
    Celle ci s'execute bien quand on tape dans le browser http://localhost:7001/mondoc/Compteur.do .

    Je voudrais maintenant savoir comment faire (sous struts ? ou autre) pour que pour chaque page (toutes les url), ça execute cette servlet ?

    Merci pour votre aide.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 98
    Par défaut
    Je débute en Struts mais je dirai (au pif !)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <action
          path="*"
          type="monpackage.Compteur"
          scope="request"
          unknown="false"
          validate="true"
        >

  3. #3
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    408
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 408
    Par défaut
    Je débute en Struts mais je dirai (au pif !)


    Code :
    <action
    path="*"
    type="monpackage.Compteur"
    scope="request"
    unknown="false"
    validate="true"
    >
    Merci pour votre réponse, mais je l'avais déjà essayé, et ça ne fonctionne pas...

  4. #4
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    Syntaxe error

    Ce n'est pas comme ça que ça fonctionne, un contrôleur struts ne peut pas être mis en frontal d'un autre comme ceci, mais il y a plusieurs possibilités pour faire ce compteur :

    1- utiliser un filtre qui interceptera les url contenant un ".do"

    2- créer une classe étendant RequestProcessor ou TilesRequestProcessor ou LayoutRequestProcessor (en fonction de ce que tu utilises), la définir dans le struts-config.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <controller
            processorClass="com.obia.safe.struts.StrutsProcessor"
            contentType="text/html;charset=ISO-8859-1" />
    3- créer une classe étendant Action (et/ou DispatchAction et/ou LookupDispatchAction en fonction du choix que tu auras fait pour tes propres contrôleurs)

    Là, tu pourras faire ton traitement générique du compteur.

    (la solution 1 est certainement la plus facile à mettre en œuvre)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    408
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 408
    Par défaut
    Bonjour,
    Voici ma classe :
    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
    package monpackage.common;
     
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.sql.Statement;
    import org.apache.log4j.Logger;
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import monpackage.util.Constants;
    import monpackage.util.MyException;
     
    /**
     * @struts.action path="/HitCounter" name="success" scope="request" validate="true"
     * 
     */
    public class HitCounter extends Action {
    	public ActionForward execute(ActionMapping mapping, 
    		   ActionForm form, HttpServletRequest request, 
    		   HttpServletResponse response) throws MyException 
    		   {
     
        String driverClass    = "oracle.jdbc.driver.OracleDriver";
        String connectionURL  = "jdbc:oracle:thin:@maBDD";
        String userID         = "username";
        String userPassword   = "password";
        Connection   con                   = null;
     
     
            try {
                Class.forName(driverClass).newInstance();
               con = DriverManager.getConnection(connectionURL, userID, userPassword);
            } catch (ClassNotFoundException e) {e.printStackTrace();} 
    		  catch (InstantiationException e) {e.printStackTrace();} 
    		  catch (IllegalAccessException e) {e.printStackTrace();} 
    		  catch (SQLException e) {e.printStackTrace();}
     
            ResultSet rset      = null;
            String queryString = "UPDATE hits SET counter = counter + 1";
            try {
            	Statement stmt = con.createStatement ();
                rset = stmt.executeQuery(queryString);         
                System.out.println("compteur maj");
                rset.close();
                stmt.close();
     
            } catch (SQLException e) { e.printStackTrace(); }
     
        /**
         * Close down Oracle connection.
         */
    //    public void closeConnection() {
            try {con.close();} catch (SQLException e) {e.printStackTrace();}
     
            return mapping.findForward("success");
     
     
      }
     
    }
    mon action dans le fichier struts config

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <action
          path="/HitCounter"
          type="monpackage.HitCounter"
          name="success"
          scope="request"
          unknown="false"
          validate="true"
        >
        </action>
    mon servlet-mappings
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <servlet>		
            <servlet-name>HitCounter</servlet-name>
            <servlet-class>monpackage.HitCounter</servlet-class>
    </servlet>
    <servlet-mapping>
      <servlet-name>HitCounter</servlet-name>
      <url-pattern>*.do</url-pattern>
    </servlet-mapping>
    Remarque : la servlet s'execute uniquement si je la tape dans l'url... moi ce que je voudrais c'est qu'elle s'execute pour toutes les url...

  6. #6
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 313
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 313
    Billets dans le blog
    1
    Par défaut
    J'avais bien compris...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [Struts] [Oracle] Datasource et Servlet indispo
    Par babylone7 dans le forum Servlets/JSP
    Réponses: 14
    Dernier message: 01/01/2009, 20h16
  2. execution servlet via jsp
    Par argon dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 15/06/2008, 10h07
  3. [Struts 2] action executé 2 fois
    Par voodoo_mg dans le forum Struts 2
    Réponses: 2
    Dernier message: 10/01/2008, 08h23
  4. Executer servlet dans classe java ?
    Par Tail dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 12/03/2007, 16h32
  5. [servlet][struts] Appelle des actions/servlet
    Par AnKhCHFR dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 07/03/2005, 12h55

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