Spring mvc url-pattern 和@RequestMapping 映射的小问题

在web.xml 配置DispatcherServlet时 将url-pattern配置成下面的形式:

 <url-pattern>/rest/*</url-pattern>

在Controller中 方法名上面的映射路径配置成下面几种情况:

  1. /rest/url/url2
    浏览器中输入 localhost:8080/rest/url/url2
    是访问不到该资源的
  2. /url/url2 这样在浏览器中访问 localhost:8080/rest/url/url2是可以访问到的

    思考:
    url-patter呢 /xx/* 这种形式 在映射到controller的时候 * 之前路径被滤掉,只匹配最后一个*的。
    实验1:
    urlpattern 配置为 /rest/path/*
    @requetMapping 配置为 /url
    此时浏览器访问 localhost:8080/rest/path/url 才能访问到
    实验二:
    urlpattern 配置为 /rest/path 这相当于精确配置(注意path后面不能有/)
    所以
    @requetMapping 配置也必须为 /rest/path
    此时浏览器访问 localhost:8080/rest/path 才能访问到

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页