2017-06-23 7 views
0

Lorsque j'ai "/" comme motif d'URL, je peux taper ce que je veux après la barre oblique dans la barre d'adresse et atterrir avec succès sur le servlet . Ce est, à la foisurl-pattern "/" vs "/ *" vs vierge dans servlet

http://localhost:8080/firstServlet/ 

ainsi que

http://localhost:8080/firstServlet/any_random_string 

me donne le même résultat.

Mais quand j'ai url-pattern vide alors seulement http://localhost:8080/firstServlet/ fonctionne et tout. S'il vous plaît expliquer pourquoi. Il y a quelque chose comme here et here mais je ne comprends pas exactement.

Le motif "/ *" se comporte également comme "/".

+0

en outre, «/» et «/* » se comportent de la même manière et quand je dis «/* », je ne veux pas dire «/» suivi par "/* "comme dans un match de répertoire! –

+0

Cette question a déjà une réponse ici [Différence entre/et/* dans le modèle d'URL de mappage de servlet] (https://stackoverflow.com/questions/4140448/difference-between-and-in-servlet-mapping-url-pattern) –

Répondre

1
<url-pattern>/*</url-pattern> 

Le/* sur un servlet remplace tous les autres servlets, y compris tous les servlets fournis par le servletcontainer comme le servlet par défaut et le servlet JSP. Quelle que soit la requête que vous lancez, elle se retrouvera dans cette servlet. C'est donc un mauvais modèle d'URL pour les servlets. Habituellement, vous souhaitez utiliser/* sur un filtre uniquement

<url-pattern>/</url-pattern> 

Le/ne remplace aucun autre servlet. Il ne remplace que le servlet par défaut intégré du servletcontainer pour toutes les demandes qui ne correspondent à aucune autre servlet enregistrée. Ceci est normalement invoqué que sur les ressources statiques (CSS/JS/image/etc) et les listes de répertoires

Et pour motif url vide

<url-pattern></url-pattern> 

La chaîne vide ("") est un modèle d'URL spéciale que les cartes exactement à la racine

contexte de l'application
+0

vous voulez dire comment le taper dans web.xml? –

+0

Je suis désolé pour ce commentaire mal typé. Je n'ai pas compris "/ *", j'ai compris pourquoi "/" se comportait comme il était de votre réponse et [ici] (https://www.coderanch.com/t/366340/java/servlet-mapping-url -modèle). Aussi, qu'en est-il de la chaîne vide? Veuillez l'inclure dans votre réponse. –

+0

Fait, je mets à jour ma réponse –