2009-03-21 5 views

Répondre

3

Je ne sais pas ce que vous voulez dire, mais vous devez mapper votre servlet "/"

<servlet-mapping> 
    <servlet-name>SampleServlet</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 
1

Je ne sais pas quel est votre but, mais l'initialisation de l'application Web peut être réalisé par ServletContextListener:

public class AppListener implements ServletContextListener { 
    public void contextInitialized(ServletContextEvent event) { 
     // place your code here 
    } 

    public void contextDestroyed(ServletContextEvent event) { 
    } 
} 

et plus tard dans web.xml:

<web-app> 
<listener> 
    <listener-class> 
     package.AppListener 
    </listener-class> 
</listener> 
... 
</web-app> 
+0

Ceci est invoqué une seule fois, au cours du cycle de vie de l'application. L'affiche demandait quelque chose auquel on accédait une fois par demande. – erickson

+0

à mon humble avis, la question n'est pas claire que vous pouvez voter comme hors-sujet. J'ai interprété la question comme signifiant "quand l'utilisateur arrive" et signifier l'affichage d'une page générée par un servlet plutôt que l'exécution de code. C'est une mauvaise question, et une réponse utile si elles correspondent est indéchiffrable. –

+0

erickson: Oui, je sais que c'est invoqué une fois et pas une fois par demande. La question n'était pas claire, c'est pourquoi j'ai commencé ma réponse par "Je ne sais pas quel est votre but". – asalamon74

5

Si vous souhaitez effectuer une servlet votre page, puis cela a fonctionné pour moi http://feelitlive.com/

<welcome-file-list> 
    <welcome-file>homepage</welcome-file> 
</welcome-file-list> 

... 

<servlet> 
    <description>Shows stuff on the homepage</description> 
    <display-name>Homepage Servlet</display-name> 
    <servlet-name>HomepageServlet</servlet-name>   
    <servlet-class>com.cantorva.gigcalendar.servlets.HomepageServlet</servlet-class> 
</servlet> 

... 

<servlet-mapping> 
    <servlet-name>HomepageServlet</servlet-name> 
    <url-pattern>/homepage</url-pattern> 
</servlet-mapping> 

Cela signifie que les utilisateurs arrivant à votre application via l'URL que vous avez spécifié sera accueilli par votre servlet. Il crée également un alias pour la page d'accueil sur "/ homepage" mais vous n'avez pas besoin de l'utiliser.

Si vous voulez exécuter du code au démarrage, alors asalamon74's answer semble correct.

0

Si vous voulez exécuter du code au démarrage en effet asalamon74's answer devrait être bien. Si vous avez une situation héritée et vous devez utiliser un servlet, le paramètre de charge sur le démarrage peut faire l'affaire pour vous:

<servlet> 
    <servlet-name>SampleServlet</servlet-name> 
    <display-name>SampleServlet</display-name> 
    <description>Sample Servlet</description> 
    <servlet-class>...</servlet-class> 
    <init-param>...</init-param> 
    <load-on-startup>1</load-on-startup> 
    </servlet> 

La balise charge sur le démarrage indique que le servlet doit être chargé automatiquement lorsque l'application Web est démarrée; la valeur numérique donne juste un ordre de chargement à ceux qui se chargent au démarrage. Si aucune valeur n'est spécifiée, le servlet est chargé lorsque le conteneur décide qu'il doit être chargé, généralement lors de son premier accès.

Questions connexes