@WebServlet annotation web.xml willkommen-Datei
Ich würde gerne die welcome-Datei von meinem JSP/JavaBeans Projekt. Ich habe ein servlet mit dem Namen 'Controller.java' mit dem folgenden @WebServlet annotation:
@WebServlet(name="Controller", urlPatterns={"/login", "/show_dbs"})
und ich hava a web.xml Datei mit dem folgenden Inhalt:
<?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>
Fast alle Dinge gut, die ich öffnen kann http://localhost:8080/PROJECT/login
und http://localhost:8080/PROJECT/show_dbs
und ich komme zu Controller.java. Aber wenn ich es öffnen http://localhost:8080/PROJECT/
bekomme ich einen 404-Fehler.
Ich verwende Eclipse mit ein "Dynamic Web Project", das Controller.java die Datei befindet sich unter /src (Standard-Paket) und die web.xml die Datei ist unter /WebContent/WEB-INF.
Ich hoffe Sie haben einen Tipp für mich.
- Ich könnte falsch sein, aber ich glaube nicht, dass Sie können eine java-Klasse, die in der welcome Datei-Liste. Erstellen Sie eine jsp-Datei wie index.jsp und verwenden, statt. <welcome-file - >index.jsp</welcome-file - >. Auf diese Weise, wenn yo access localhost:8080/PROJEKT, sollte man weitergeleitet auf index.jsp
- Danke für deine Antwort. Aber es hat zu sein 'Controller.java" weil es die Anforderung verarbeitet je nach der Sitzung.
- Finden Sie unter diesem stackoverflow.com/questions/13450044/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Willkommen In der Dateiliste müssen Sie geben Sie die URIs. Aber Sie haben angegeben, die name des servlet -.
Zitat aus der Java™ Servlet Specification, version 3.0 (Hervorhebung von mir):
P. S.
Siehe auch die Beispiele in der Spezifikation in Kapitel 10.10
Danke für Eure Hilfe. Hier kommt meine Lösung:
Wenn Sie wollen, um Ihr servlet als welcome-Datei Sie haben, um Folgendes zu tun:
Definieren Sie eine standard-html als Willkommens-Datei wie index.html in Ihrem web.xml:
Stellen Sie sicher, dass diese Datei (index.html) nicht vorhanden.
Definieren Sie Ihre urlPatterns in @WebServlet wie diese:
Nun jeder Anfrage
http://.../PROJECT/
(root) werden umgeleitethttp://.../PROJECT/index.html
und dieser ruft das servlet auf.url-pattern
ist nur eine logische / virtuelle Pfad für das servlet. Wieder, es ist NICHT eine echte Pfad zu den physischen Speicherort der servlet-Klasse, aber ein logischer Weg - Sie machen es sich wie Sie es wünschen. So könnte es sein, ziemlich viel was auch immer Sie mögen. Ich meine, nicht unbedingtindex.html
, es könnte sein, nur/index
oderfoo
oderfoo.bar
oder was auch immer. P. S. herzlichen Glückwunsch, jetzt haben Sie enogh Punkte zu upvote ))Dies ist, was Ihre web.xml sein sollte. Einen index erstellen.jsp. Verwenden Sie den index.jsp als Ihre welcome-Datei. Die controller-Klasse ist Ihre sevlet. So definieren Sie ein servlet, das in Ihrem web.xml Sie wie folgt vor. Dies sollte dazu führen, dass alle Anfragen zu richten an die Controller-Klasse. Und sollten Sie immer noch Zugriff auf localhost:8080/PROJEKT/, in welchem Fall es wird gerichtet werden, um Ihre welcome-Datei.
Wenn Sie nicht wollen, um eine index zu erstellen.jsp können Sie mit Ihrem vorhandenen jsp-Datei, können Sie Ihre Anmeldung.jsp-Datei, wie Sie Ihre Willkommens-Datei. In dem Fall, ersetzen Sie einfach die index.jsp mit login.jsp
Den Standard-welcome-Datei ist
index.html
, so fügen Sie einfach die URL-Muster.Können Sie die url "/Controller" in urlPatterns in @WebServlet annotation. Ich denke, es wird funktionieren.