Шаблон URL-адреса сервлета, соответствующий URL-адресу, который заканчивается косой чертой (“/”)

StackOverflow https://stackoverflow.com/questions/459263

Вопрос

Я хотел бы указать шаблон 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, заканчивающийся косой чертой, не разрешен.

Это было полезно?

Решение

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

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

Другие советы

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

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

Так что да, URI с конечной косой чертой недопустим.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top