@WebServlet annotation web.xml bienvenue-fichier
Je voudrais mettre la bienvenue-fichier de ma JSP/Ejb projet. J'ai une servlet nommée 'Controller.java" avec le suivant @WebServlet annotation:
@WebServlet(name="Controller", urlPatterns={"/login", "/show_dbs"})
et que je dispose d'un web.xml fichier avec le contenu suivant:
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<welcome-file-list>
<welcome-file>Controller</welcome-file>
</welcome-file-list>
</web-app>
Presque tous les choses vont bien, je peux ouvrir http://localhost:8080/PROJECT/login
et http://localhost:8080/PROJECT/show_dbs
et je viens de Controller.java. Mais quand j'ai ouvert http://localhost:8080/PROJECT/
j'ai une erreur 404.
Je suis à l'aide d'Eclipse avec un "Dynamic Web Project", le Controller.java fichier se trouve dans /src (package par défaut) et le web.xml le fichier se trouve dans /WebContent/WEB-INF.
J'espère que vous avez une astuce pour moi.
Je vous remercie pour votre réponse. Mais elle doit être "Controller.java" parce qu'il traite la demande en fonction de la session.
Voir ce stackoverflow.com/questions/13450044/...
OriginalL'auteur konze | 2013-03-19
Vous devez vous connecter pour publier un commentaire.
Dans l'accueil de la liste de fichiers, vous devez spécifier l'Uri. Mais vous avez spécifié le nom de la servlet.
Citation de la Java Servlet Spécification de la version 3.0 (l'emphase est mienne):
P. S.
Voir aussi les exemples dans le cahier des charges dans le chapitre 10.10
OriginalL'auteur informatik01
Merci pour votre aide. Voici ma solution:
Si vous souhaitez définir votre servlet, comme bienvenue de fichier que vous devez faire ce qui suit:
Définir un standard html, comme bienvenue de fichier tels que index.html dans votre web.xml:
Assurez-vous que ce fichier (index.html) n'existe pas.
Définir votre urlPatterns dans @WebServlet comme ceci:
Maintenant, à chaque demande de
http://.../PROJECT/
(racine) sera redirigé vershttp://.../PROJECT/index.html
et appelle la servlet.url-pattern
est juste une logique / chemin d'accès virtuel de la servlet. Encore une fois, ce n'est PAS un vrai chemin de l'emplacement physique de la classe de servlet, mais un chemin logique, - vous faites comme vous le souhaitez. De sorte qu'il pouvait être à peu près tout ce que vous voulez. Je veux dire, pas nécessairementindex.html
, il pourrait être juste/index
oufoo
oufoo.bar
ou quoi que ce soit. P. S. Félicitations, vous avez maintenant enogh points de upvote ))OriginalL'auteur konze
C'est ce que votre web.xml devrait être. Créer un index.jsp. Utiliser l'index.jsp que votre message d'accueil. Le contrôleur de classe est votre sevlet. Afin de définir une servlet dans votre web.xml comme suit. Cela devrait faire en sorte que toutes les demandes soient adressées à la classe du Contrôleur. Et vous devriez toujours être en mesure d'accéder à localhost:8080/PROJET/, auquel cas il sera dirigé vers votre message d'accueil.
Si vous ne voulez pas créer d'index.jsp, vous pouvez utiliser votre fichier jsp, peut-être que votre identifiant de connexion.fichier jsp que votre message d'accueil. Dans ce cas, il suffit de remplacer l'index.jsp avec login.jsp
OriginalL'auteur Susie
L'accueil par défaut du fichier est
index.html
, donc il suffit d'ajouter le modèle d'URL.OriginalL'auteur Daniel De León
Vous pouvez spécifier l'url "/Contrôleur" dans urlPatterns dans @WebServlet annotation. Je pense que cela fonctionnera.
OriginalL'auteur Mayank Bansal