2009-01-19 6 views
8

Je souhaite spécifier un modèle d'URL de servlet pour correspondre à une URL qui se termine par une barre oblique ("/") et une barre oblique.Modèle d'URL de servlet correspondant à une URL se terminant par une barre oblique ("/")

Je comprends que le motif

 /example/path/*

correspond à l'URL de

 http://example.com/example/path/

et que cela semble fonctionner. Cependant, ce même motif reconnaîtrait également les URL de

 http://example.com/example/path/a/ 
    http://example.com/example/path/b/ 
    http://example.com/example/path/c/

Je cherche simplement un modèle d'URL qui correspondent à http://example.com/example/path/ seulement sans correspondre aussi http://example.com/example/path/a/ et ainsi de suite.

Clarification: un modèle d'URL se terminant par une barre oblique n'est pas autorisé.

+0

Avez-vous essayé sans l'étoile arrière? Par exemple: /example/ –

+0

Oui, j'ai déjà essayé cela. NetBeans me dit qu'un modèle d'URL se terminant par une barre oblique n'est pas autorisé. –

Répondre

8

Il est tout à fait possible que vous ne puissiez pas le faire en mappant web.xml. Ce que vous pouvez faire est de mapper servlet à/mypath/* et ensuite vérifier partie après/mypath/via request.getPathInto(). Si c'est "/", lancez votre code. Si ce n'est pas le cas, renvoyer l'erreur 404.

1

Dans NetBeans, si je vais dans l'onglet Servlets du fichier web.xml, l'EDI se plaindrait de "Erreur: les modèles d'URL ne peuvent pas se terminer par une barre oblique (/)". De l'URL spec, il lit,

httpurl  = "http://" hostport [ "/" hpath [ "?" search ]] 
hpath   = hsegment *[ "/" hsegment ] 

Alors oui, un URI avec une barre oblique de fin est invalide.

Questions connexes