Application web j2e
Résolu
titi0006
Messages postés
184
Statut
Membre
-
titi0006 Messages postés 184 Statut Membre -
titi0006 Messages postés 184 Statut Membre -
Bonjour,
Je commence à développer des applications webs en java et je souhaiterais faire une redirection.
Quand on lance l'application sous Eclipse sa me donne:
http://localhost:8080/appli/
Et j'ai bien mon formulaire de connexion comme si je saisissez cette url http://localhost:8080/appli/login
Le problème c'est comment appeler la servlet qui est lié au formulaire de connexion dans le premier cas?
Voici mon fichier xml:
<welcome-file-list>
<welcome-file>/WEB-INF/login.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>fr.btssio2014.decouverteJ2E.servlet.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
Je commence à développer des applications webs en java et je souhaiterais faire une redirection.
Quand on lance l'application sous Eclipse sa me donne:
http://localhost:8080/appli/
Et j'ai bien mon formulaire de connexion comme si je saisissez cette url http://localhost:8080/appli/login
Le problème c'est comment appeler la servlet qui est lié au formulaire de connexion dans le premier cas?
Voici mon fichier xml:
<welcome-file-list>
<welcome-file>/WEB-INF/login.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>fr.btssio2014.decouverteJ2E.servlet.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
A voir également:
- Application web j2e
- Web office - Guide
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Desinstaller application windows - Guide
- Création site web - Guide
- Windows application démarrage - Guide
3 réponses
Si je comprends bien, tu voudrais appeler LoginServlet de la même manière que ce soit avec /appli ou /appli/login ?
Le welcome-file pourrait peut-être marcher à condition de mettre l'url-pattern /login plutôt que le fichier login.jsp (à vérifier) mais perso je ferais plutôt un double mapping sur la servlet :
Un exemple ici : Exemple simple d'application JSTL
Le welcome-file pourrait peut-être marcher à condition de mettre l'url-pattern /login plutôt que le fichier login.jsp (à vérifier) mais perso je ferais plutôt un double mapping sur la servlet :
<servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/login</url-pattern> </servlet-mapping>
Un exemple ici : Exemple simple d'application JSTL
Tu as bien compris ce que je souhaitais.
Il me semble que j'avais déjà essayé et que sa fonctionne pas mais bon je vais quand même réessayer
Il me semble que j'avais déjà essayé et que sa fonctionne pas mais bon je vais quand même réessayer
T'a solution ne fonctionne pas
Mais j'ai suivi ton lien et sa fonctionne mais mon css n'est plus du tout prix en compte sur mon navigateur, il est bien pris en compte dans eclipse en revanche
Mais j'ai suivi ton lien et sa fonctionne mais mon css n'est plus du tout prix en compte sur mon navigateur, il est bien pris en compte dans eclipse en revanche
Mais comme ma solution se basait sur le code que je t'ai donné en lien, c'est que le problème est ailleurs...
Si j'ai publié cet exemple de base c'est justement pour partir sur de bons pieds avec de la configuration pas toujours évidente à mettre en place.
Du coup avec ce lien ton problème est résolu ou pas ? Tu peux regarder dans le détail quelle est la différence et une fois que ton programme marche avec le double mapping regarder si le welcome-file fonctionne aussi ou non...
Si j'ai publié cet exemple de base c'est justement pour partir sur de bons pieds avec de la configuration pas toujours évidente à mettre en place.
Du coup avec ce lien ton problème est résolu ou pas ? Tu peux regarder dans le détail quelle est la différence et une fois que ton programme marche avec le double mapping regarder si le welcome-file fonctionne aussi ou non...
Je pense qu'il considère que ton fichier CSS matche / puisqu'il n'a aucun pattern plus spécifique dans ton web.xml. Du coup le contenu de ton fichier CSS sera celui de la page login.jsp une fois interprété, ce qui fait effectivement désordre.
Tu devrais rajouter un mapping sur les ressources statiques comme ceci, de préférence au début et mettre le mapping sur / tout à la fin, comme dernier choix possible.
Tu devrais rajouter un mapping sur les ressources statiques comme ceci, de préférence au début et mettre le mapping sur / tout à la fin, comme dernier choix possible.
<servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.html</url-pattern> <url-pattern>*.css</url-pattern> <url-pattern>*.png</url-pattern> <url-pattern>*.jpg</url-pattern> <url-pattern>*.gif</url-pattern> <url-pattern>*.js</url-pattern> </servlet-mapping>
Comme ceci:
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.html</url-pattern>
<url-pattern>*.css</url-pattern>
<url-pattern>*.png</url-pattern>
<url-pattern>*.jpg</url-pattern>
<url-pattern>*.gif</url-pattern>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet>
<display-name>LoginServlet</display-name>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>fr.Appli.servlet.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>AccueilServlet</servlet-name>
<servlet-class>fr.Appli.servlet.AccueilServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AccueilServlet</servlet-name>
<url-pattern>/accueil</url-pattern>
</servlet-mapping>
?
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.html</url-pattern>
<url-pattern>*.css</url-pattern>
<url-pattern>*.png</url-pattern>
<url-pattern>*.jpg</url-pattern>
<url-pattern>*.gif</url-pattern>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
<servlet>
<display-name>LoginServlet</display-name>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>fr.Appli.servlet.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/login</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>AccueilServlet</servlet-name>
<servlet-class>fr.Appli.servlet.AccueilServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AccueilServlet</servlet-name>
<url-pattern>/accueil</url-pattern>
</servlet-mapping>
?
Oui je pense que ça devrait marcher. Mais histoire d'être vraiment sûr, je mettrais le / à la fin, un peu comme un default dans un case.
<servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.html</url-pattern> <url-pattern>*.css</url-pattern> <url-pattern>*.png</url-pattern> <url-pattern>*.jpg</url-pattern> <url-pattern>*.gif</url-pattern> <url-pattern>*.js</url-pattern> </servlet-mapping> <servlet> <display-name>LoginServlet</display-name> <servlet-name>LoginServlet</servlet-name> <servlet-class>fr.Appli.servlet.LoginServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/login</url-pattern> </servlet-mapping> <servlet> <servlet-name>AccueilServlet</servlet-name> <servlet-class>fr.Appli.servlet.AccueilServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>AccueilServlet</servlet-name> <url-pattern>/accueil</url-pattern> </servlet-mapping> <!-- Par défaut --> <servlet-mapping> <servlet-name>LoginServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>