2009-07-31 7 views
0

Ich versuche, diese example zu folgen, aber ich diesen Teil nicht verstehen kann:
Imagine also that the servlet's context path is myServer/myApp/servlets. The servlet container would direct a request with URL myServer/myApp/createUser.do myServlet to myServlet, because the request URL matches the pattern *.do. Servlet myServlet can extract the requested operation's name from the request URL.
Ich kann die Anforderung nicht verstehen, sollte es nicht sein myServer/myApp/myservlet/createUser.do? Und wie kann man eine solche Anfrage erstellen? Kann ich myServlet/createUser.do einfach in die Aktion eines Formulars einfügen?
Vielen Dank für Ihre Zeit.
IuliaWie kann man die Operation in einem Servlet identifizieren?

Antwort

0

Nein, Sie erstellen eine Zuordnung zu Ihrem Servlet für myapp. Der Servlet-Name selbst wird normalerweise nie in der Anforderungs-URL angezeigt. Daher wird jede Anfrage, die an myapp gesendet wird, an Ihr Servlet weitergeleitet, wenn es übereinstimmt. Das bedeutet, dass Ihr Mapping

http://myserver/myapp/ * .do

jede Anfrage mit einem .do zu Ihrem Servlet umleitet. Jetzt muss das Servlet mit der Anforderungs-URL umgehen (z. B. die Ansicht für createUser rendern)

+0

Vielen Dank für Ihre Antwort. Ich habe damit herumgespielt und ich habe eine Frage. Ich versuche den Anmeldebildschirm zu erstellen. Standardmäßig wird die index.jsp geöffnet: http: // localhost: 3818/MyApp. Ich habe hinzugefügt: $ {pageContext.request.contextPath} /signin.do in der Aktion des Formulars und dieses Dispatcher *. Do zu web.xml. Dies wird nicht funktionieren (macht eine Submit, geht durch, Werte null). Wenn die Web-App jedoch mit http: // localhost: 3818/MyApp/signin.do geöffnet wird, funktioniert sie. – Iulia

+0

Gibt es eine logische Erklärung dafür - außer "ein kleiner roter Teufel kam und vermasselte meine App" - Wie kann ich den Anmeldebildschirm genauso machen wie die anderen? Füge ich einfach den Dispatcher als /* hinzu? Wird es genügen? Wird das nicht bedeuten, dass alles durchgehen muss? Danke nochmal für deine Zeit. – Iulia

+0

Ich weiß nicht wirklich, was Sie tun wollen ... in der Tat sagen Sie nicht einmal, welche Servlet-Implementierung Sie verwenden. Sie mappen einfach, dass jeder Anruf von .do zu Ihrem Servlet umgeleitet wird. Also einfach anrufen localhost: 3818/MyApp leitet einfach nicht um, weil es keine .do-Erweiterung hat (localhost: 3818/MyApp/index.do würde aber funktionieren. – Daff

Verwandte Themen