zoukankan      html  css  js  c++  java
  • web.xml组件匹配中,/与/*的区别

        以前我就发现三大组件中,教程中配置的url-pattern的值有的是/,有的是/*,但是当时注意力都在DispcherServlet上了,就飘过去了。今天花了半天时间来吸取这个教训。
        我的bug一直出现org.springframework.web.servlet.DispatcherServlet.noHandlerFound No mapping for GET /shirotest4_war/login.jsp的错误,我就寻思控制器找不到处理器,于是在处理器中加了日志输出,但是日志输出了,还是找不到处理器,那么处理器执行了,怎么含找不到视图,就越走越远了。


        罪魁祸首就在这!

        <servlet-mapping>
        <servlet-name>dispatcherServlet</servlet-name>
        <url-pattern>/*</url-pattern>
      </servlet-mapping>
    

    /与/*规则匹配有以下区别:
    < url-pattern > / </ url-pattern > 不会匹配到*.jsp,只会是url类型(如:/log、/demo),*.jsp不会进入spring的DispatcherServlet类。
    < url-pattern > /* </ url-pattern > 会匹配*.jsp,会出现返回jsp视图时再次进入spring的DispatcherServlet 类,导致找不到对应的处理器。
        以上原因就是第二种,我从视图解析器,到dispacherServlet执行流程,也没想到会执行了两次servlet!

  • 相关阅读:
    2028 ACM Lowest Common Multiple Plus
    2032 杨辉三角
    2011 ACM 0和1思想
    grid
    Change position in observation
    1490 ACM 数学
    1489 ACM 贪心
    2009 ACM 水题
    Book Lending Registration
    MR1和MR2(Yarn)工作原理流程
  • 原文地址:https://www.cnblogs.com/theStone/p/13997214.html
Copyright © 2011-2022 走看看