Jetty '{servlet}/{parameter}' url-routing
Ich bin mit Steg 9.0.3.
Wie die Zuordnung einer URL wie www.myweb.com/{servlet}/{parameter} der gegebenen servlet und parameter?
Zum Beispiel, wird die URL '/client/12312' wird die route zu clientServlet und seine doGet
Methode erhalten 12312 als parameter.
- Müssen Sie einen filter verwenden, zum extrahieren von teilen der url.
- Mit mustern in web.xml oder im servlet? irgendein Beispiel?
- Ich habe nicht ein Beispiel. In web.xml Sie können die Karte
/client/*
. Für die12312
haben, müssen Sie entpacken Sie es aus dem Weg.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie 2 Teile zu kümmern.
WEB-INF/web.xml
Die Pfadangabe
In Ihrem
WEB-INF/web.xml
müssen Sie deklarieren Ihre Servlet und Ihre url-Muster (auch bekannt als Pfadangabe).Beispiel:
Dadurch wird das servlet implementiert in Klasse
com.mycompany.ClientServlet
auf den NamenclientServlet
dann gibt das url-pattern von/client/*
für eingehende Anfrage-URLs.Extra
/*
am Ende des url-pattern ermöglicht es jedem eingehenden Muster, das beginnt mit/client/
akzeptiert zu werden, das ist wichtig für die pathInfo-Teil.Die pathInfo
Nächsten bekommen wir in unserem Servlet-Implementierung.
In Ihrem doGet(HttpServletRequest req, HttpServletResponse resp) Umsetzung auf ClientServlet sollten Sie den Zugriff auf die req.getPathInfo() Wert, der erhalten den Teil der Anfrage-URL, die nach der
/client
auf Ihre url-pattern.Beispiel:
Du an diesem Punkt tun, was Logik, die Sie wollen, gegen die Informationen aus dem Pfad Info
Können Sie
Jersey
- und-register die folgende Klasse in derResourceConfig
- Pakete, die Handhabung../worker/1234
url-Muster.Lesen Sie mehr: Wenn es, @QueryParam vs @PathParam