Application web j2e

Résolu/Fermé
titi0006 Messages postés 157 Date d'inscription lundi 24 juin 2013 Statut Membre Dernière intervention 15 mars 2017 - 26 mars 2014 à 22:42
titi0006 Messages postés 157 Date d'inscription lundi 24 juin 2013 Statut Membre Dernière intervention 15 mars 2017 - 27 mars 2014 à 22:27
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>

A voir également:

3 réponses

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
26 mars 2014 à 22:55
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 :

<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
0
titi0006 Messages postés 157 Date d'inscription lundi 24 juin 2013 Statut Membre Dernière intervention 15 mars 2017
26 mars 2014 à 22:59
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
0
titi0006 Messages postés 157 Date d'inscription lundi 24 juin 2013 Statut Membre Dernière intervention 15 mars 2017
Modifié par titi0006 le 27/03/2014 à 18:12
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
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
27 mars 2014 à 18:15
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...
0
titi0006 Messages postés 157 Date d'inscription lundi 24 juin 2013 Statut Membre Dernière intervention 15 mars 2017
27 mars 2014 à 18:20
J'ai pris la solution donner dans le lien qui fonctionne. J'ai donc supprimer le welcome.
Mais mon css n'est plus du tout pris en compte, dans aucune page
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
27 mars 2014 à 19:16
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.

<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>
0
titi0006 Messages postés 157 Date d'inscription lundi 24 juin 2013 Statut Membre Dernière intervention 15 mars 2017
27 mars 2014 à 19:23
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>
?
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
27 mars 2014 à 19:28
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>
0