2009-01-19 12 views
8

Chciałbym podać wzorzec adresu URL serwletu, aby dopasować adres URL kończący się ukośnikiem ("/") i tylko ukośnikiem.Wzorzec adresu URL serwletu zgodny z adresem URL kończącym się ukośnikiem ("/")

Rozumiem, że wzorzec

 /example/path/*

będzie pasować do adresu URL

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

i że wydaje się działać. Jednak ten sam wzór również dopasować adresy URL

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

mam tylko szuka wzorca adresu URL, który będzie pasował http://example.com/example/path/ tylko bez również dopasowanie http://example.com/example/path/a/ i tak dalej.

Wyjaśnienie: wzorzec URL kończy się ukośnikiem nie jest dozwolone.

+0

Czy próbowałeś bez gwiazdy wleczonego? Np /example/ –

+0

Tak, ja już próbowałem. NetBeans mówi mi, że wzorzec adresu URL zakończony ukośnikiem jest niedozwolony. –

Odpowiedz

8

Jest całkiem możliwe, że nie można tego zrobić za pomocą mapowania w web.xml.

Co można zrobić, to mapa Servlet/mojasciezka/*, a następnie sprawdzić po części/mojasciezka/poprzez request.getPathInto(). Jeśli jest "/", uruchom swój kod. Jeśli nie, zwróć błąd 404.

1

W NetBeans, jeśli pójdę do zakładki serwlety w pliku web.xml, IDE skarżą się, „Błąd: wzory URL nie może kończyć się ukośnikiem (/)”. Z URL spec, czyta,

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

Więc tak, URI z kończącym się slash jest nieprawidłowy.

Powiązane problemy