URL-адреса Spring: есть разница между «/test» и «/test /» в сопоставлении контроллера

#java #html #url #spring-mvc

#java #HTML #url #spring-mvc

Вопрос:

Простой пример spring controller (если вы не знакомы с spring, просто посмотрите на выходной html):

 @Controller
@RequestMapping("test")
public class TestController {
    @RequestMapping("")
    @ResponseBody
    public String pathTest(){
        return "<html><head></head><body><a href='subpath'>subpath</a></body></html>";
    }
}
  

Если я перейду к http://mydomain/test ссылка из приведенного выше HTML-кода ведет к:http://mydomain/subpath

Если я перейду к http://mydomain/test /, ссылка из приведенного выше html-кода ведет к: http://mydomain/test/subpath

Я предполагаю, что это просто, но я не знаю, как гарантировать, что завершающий ‘/’ не влияет на функцию приложения. Моя главная проблема заключается в том, что когда пользователи вручную меняют URL-адрес, они могут оставлять или не оставлять завершающий символ ‘/’.

Что я могу сделать, чтобы убедиться, что мое приложение работает одинаково, независимо от того, существует конечное ‘/’ или нет?

Ответ №1:

Не возвращать <a href='subpath'>subpath</a> return

<a href='/test/subpath'>subpath</a> вместо этого.