2013-06-01 9 views
7

Ich versuche, ein Servlet Muster abzubilden, die beide SpieleServletzuordnung mit mehreren (zwei) als Platzhalter durch Schrägstrich getrennt

/server/abcDef/1432124/adfadfasdfa 

und

/server/abcDef/abcd/12345 

die Werte ‚1432124‘ und ‚abcd‘ sind nicht festgelegt und könnte eine Vielzahl von Werten sein. Also im Wesentlichen muss ich gegen /abcDef/*/* übereinstimmen - nur die abcDef ist behoben.

Gibt es eine Möglichkeit für mich, dies zu kartieren? Wirklich ich bin auf der Suche nach etwas wie folgt aus:

<servlet-mapping> 
    <servlet-name>abcDefServlet</servlet-name> 
    <url-pattern>/server/abcDef/*/*</url-pattern> 
</servlet-mapping> 

Antwort

11

Nach der Servlet Specification, URL-Muster, die mit „/ *“ werden alle Anforderungen an den vorhergehenden Pfad entsprechen. Also, Sie es in der Art und Weise taten, würden Sie den folgenden url zu bekommen, um abcDefServlet eingeben müssen:

http://myapp.com/server/abcDef/*/<wildcard> 

Was Sie ist mehrere URL-Muster in einem Servletzuordnung hinzufügen allerdings tun können. ZB:

<servlet-mapping> 
    <servlet-name>abcDefServlet</servlet-name> 
    <url-pattern>/server/abcDef/1432124/*</url-pattern> 
    <url-pattern>/server/abcDef/abcd/*</url-pattern> 
</servlet-mapping> 

Update:

Da 1432124 und abcd keine festen Werte sind, können Sie die folgende Abbildung sicher hinzufügen:

<servlet-mapping> 
    <servlet-name>abcDefServlet</servlet-name> 
    <url-pattern>/server/abcDef/*</url-pattern> 
</servlet-mapping> 

Und dann, was auch immer Werte behandeln das kommt nach abcDef innerhalb des Servlet selbst, wit h folgende Funktion:

req.getPathInfo() 
+0

Sorry, ich hätte erwähnen sollen, dass '1432124' und 'abcd' nicht festgelegt sind und eine Vielzahl von Werten enthalten könnten. Also im Wesentlichen muss ich mit/abcDef/*/* übereinstimmen - nur der abcDef ist behoben. Ich werde meine Frage bearbeiten, um sehr klar zu sein. – Sai

+0

@Sai: Ok. Ich habe jetzt auch die Antwort aktualisiert. Überprüfen Sie bitte das. – Cassio

+2

Der ** aktualisierte ** Teil ist der richtige. +1 – informatik01

Verwandte Themen