java это URL-адрес сервлета для соответствия URL-адресу, заканчивающемуся косой чертой(«/»)




web.xml пример (2)

Я хотел бы указать шаблон URL сервлета для соответствия URL-адресу, который заканчивается косой чертой («/») и только косой чертой.

Я понимаю, что шаблон

    /example/path/*

будет соответствовать URL-адресу

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

и это похоже на работу. Однако эта же модель также будет соответствовать URL-адресам

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

Я просто ищу шаблон URL, который будет соответствовать только http://example.com/example/path/ но также не соответствует http://example.com/example/path/a/ и т. Д.

Уточнение: шаблон URL, заканчивающийся косой чертой, не разрешен.


В NetBeans, если я перейду на вкладку Servlets в файле web.xml, IDE будет жаловаться: «Ошибка: шаблоны URL не могут заканчиваться косой чертой (/)». Из спецификации URL он читает,

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

Так что да, URI с косой чертой недействителен.


Вполне возможно, что вы не можете сделать это путем сопоставления в web.xml.

Что вы можете сделать, так это привязать сервлет к / mypath / *, а затем проверить часть после / mypath / через request.getPathInto (). Если это «/», запустите свой код. Если это не так, верните ошибку 404.







url-pattern