Je voudrais définir le fichier de bienvenue de mon projet JSP / Javabeans. J'ai un servlet nommé 'contrôleur.java' avec l'annotation @webserservlet suivante: et j'ai un fichier web.xml avec le contenu suivant: p> Presque toutes les choses vont bien, je peux ouvrir J'utilise Eclipse avec un "projet Web dynamique", le contrôleur. Le fichier Java est situé sous / src (package par défaut) et le fichier web.xml est sous /webcontent/web-inf. J'espère que vous avez un conseil pour moi. P> P> http: // localhost: 8080 / projet / login code> et
http: // localhost: 8080 / projet / show_ds_dbs < / code> et je viens au contrôleur.java. Mais quand j'ouvre
http: // localhost: 8080 / Project / Code> I Obtenir une erreur 404. P>
5 Réponses :
Voici ce que votre web.xml devrait être. Créer un index.jsp. Utilisez l'index.jsp comme fichier de bienvenue. La classe de contrôleur est votre Sevlet. Donc, définissez un servlet dans votre web.xml comme suit. Cela devrait entraîner une ordonnance de toutes les demandes de la classe du contrôleur. Et vous devriez toujours pouvoir accéder à Localhost: 8080 / Projet /, auquel cas il sera dirigé vers votre fichier de bienvenue.
Si vous ne souhaitez pas créer index.jsp, vous pouvez utiliser votre fichier JSP existant, peut être votre fichier login.jsp comme fichier de bienvenue. Dans ce cas, il suffit de remplacer l'index.jsp avec login.jsp p>
Dans la liste de fichiers de bienvenue, vous devez Citation du Les développeurs d'applications Web peuvent définir un
Liste de commande de URIS partielle forte> appelé fichiers de bienvenue sur le Web
Descripteur de déploiement d'application. La syntaxe de descripteur de déploiement
Pour la liste est décrit dans le descripteur de déploiement de l'application Web
schéma. p>
Le but de ce mécanisme est de permettre au déplocieur de
Spécifiez une liste ordonnée d'URIS partielle pour le conteneur à utiliser pour
Ajout aux URI lorsqu'il y a une demande d'URI qui correspond à
à une entrée d'annuaire dans la guerre non mappée sur une composante Web. Cette
Le type de demande est connu comme une demande partielle valide. p>
L'utilisation de cette installation est clarifiée par l'exemple courant suivant: un fichier de bienvenue
de Si un conteneur Web reçoit une demande partielle valide, le conteneur Web doit examiner la
Liste de fichiers de bienvenue définie dans le descripteur de déploiement. L'accueil
La liste des fichiers est une liste de commande Si aucun fichier de bienvenue correspondant n'est trouvé de la manière décrite, le conteneur
Peut gérer la demande d'une manière qu'il trouve appropriée. Pour certaines configurations, cela peut
signifie retourner une liste de répertoires ou pour d'autres renvoyant une réponse 404. P>
blockQuote>
P.s. P>
Voir également les exemples de la spécification du chapitre 10.10 P>
10.10 Fichiers de bienvenue h2>
'index.html' code> peut être défini afin qu'une demande à une URL aime
hôte: port / webapp / répertoire / code>, où
'répertoire' code> est une entrée dans la guerre
qui n'est pas mappé sur une page de servlet ou de JSP, est renvoyé au client
Comme
'Host: port / webapp / répertoire / index.html' code>. p>
Merci pour votre aide. Voici ma solution:
Si vous souhaitez définir votre servlet en tant que fichier de bienvenue, vous devez effectuer ce qui suit: p>
Définissez un fichier HTML standard comme fichier de bienvenue tel que index.html dans votre web.xml : p> Assurez-vous que ce fichier (index.html) n'existe pas strong>. p> Définissez vos urlpatterns dans @weServillet comme ceci: p> maintenant chaque requête à http: //.../project/ code> (root) sera redirigé vers
http http : //.../Project/index.html code> et cela appelle le servlet. P> p>
En tant que note latérale, avec des servlets ce que vous définissez avec URL-motif code> est juste un chemin logique / virtuel pour le servlet. Encore une fois, ce n'est pas un véritable chemin vers l'emplacement physique de la classe de servlet, mais un chemin logique - vous le faites comme vous le souhaitez. Donc, cela pourrait être à peu près tout ce que vous voulez. Je veux dire, pas nécessairement
index.html code>, il pourrait s'agir de
/ index code> ou
foo code> ou
foo.bar code> ou peu importe. P.s. Félicitations, maintenant, vous avez des points d'enogh à uPvote)))
Vous pouvez spécifier l'URL "/ contrôleur" dans URLPatterns dans @WebServlet Annotation. Je pense que cela fonctionnera. P>
Le fichier de bienvenue par défaut est index.html code>, alors ajoutez simplement le motif d'URL.
Je pourrais avoir tort mais je ne pense pas que vous puissiez mettre une classe Java dans la liste des fichiers de bienvenue. Créez un fichier JSP comme index.jsp et utilisez cela à la place. index.jsp welcome-file>. De cette façon, lorsque vous accédez à localhost: 8080 / projet , vous devriez être transmis à index.jsp
Merci pour votre réponse. Mais il doit être "contrôleur.java" car il gère la demande en fonction de la session.
Voir ceci Stackoverflow.com/questions/13450044/...