美文网首页
web.xml 配置 servlet-mapping 中 url

web.xml 配置 servlet-mapping 中 url

作者: 淡淡的橙子 | 来源:发表于2018-03-29 19:29 被阅读0次

最近工程启动时,由于希望能够将静态页面和动态页面相分离,所以在动态请求的参数前面添加了前缀来进行区分已拦截。比如采用前缀 /gzj/*。
配置的内容如下:

  <servlet>
        <servlet-name>DispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:conf/applicationContext-servlet.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup><!--是启动顺序,让这个Servlet随Servletp容器一起启动。-->
    </servlet>

<servlet-mapping>
      <servlet-name>DispatcherServlet</servlet-name>
      <url-pattern>/gzj/*</url-pattern>
</servlet-mapping>

在启动的时候,发现无法匹配到我们Controller中/gzj/为前缀的uri。经过实验发现是由于在进行匹配的时候,Servlet会将/gzj/的前缀提取出来。所以比如我们希望匹配Controller中的/gzj/index的uri,则请求的路径为/gzj/gzj/index。比较类比nginx的proxypass的以/为结尾的情况。
有相应几个stackoverflow的问题在讨论,可以去看一下:
cant-get-spring-mvc-dispatcher-to-work-properly-when-url-pattern-is-a-path
spring-mvc-url-pattern-syntax

相关文章

网友评论

      本文标题:web.xml 配置 servlet-mapping 中 url

      本文链接:https://www.haomeiwen.com/subject/ojdvcftx.html