url-pattern中的/*和/

在使用Springmvc框架的时候,都需要在web.xml中配置一个DispatcherServlet的类:

<!-- Spring MVC servlet -->  
    <servlet>  
        <servlet-name>SpringMVC</servlet-name>  
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
        <init-param>  
            <param-name>contextConfigLocation</param-name>  
            <param-value>classpath:spring-mvc.xml</param-value>  
        </init-param>  
        <load-on-startup>1</load-on-startup>  
        <async-supported>true</async-supported>  
    </servlet>  
    <servlet-mapping>  
        <servlet-name>SpringMVC</servlet-name>  
        <url-pattern>*.do</url-pattern>  
    </servlet-mapping>  

在配置url-pattern的时候,到底应该使用哪种路径,这个问题也困扰了我很久,今天来彻底研究了一下,还是有很多不明白的地方,暂时先总结这么多吧!

http://blog.csdn.net/qq_25218095/article/details/51788063
在web.xml文件中,以下语法用于定义映射:
1. 以”/’开头和以”/*”结尾的是用来做路径映射的。
2. 以前缀”*.”开头的是用来做扩展映射的。
3. “/” 是用来定义default servlet映射的。
4. 剩下的都是用来定义详细映射的。比如: /aa/bb/cc.action
所以,为什么定义”/*.action”这样一个看起来很正常的匹配会错?因为这个匹配即属于路径映> 射,也属于扩展映射,导致容器无法判断。

验证了 /*.action 这样写肯定是不行的,所以这是错误的写法,容器没法判断.

http://blog.csdn.net/u012679583/article/details/52816257
/ 会匹配到/springmvc这样的路径型url,不会匹配到模式为*.jsp这样的后缀型url。
/* 会匹配所有的url:路径型的和后缀型的url(包括/springmvc,.jsp,.js和*.html等)。

在SpringMvc做了转发的时候,转发到一个WEB-INF/jsp/index.jsp这样的时候,也会被DispatcherServlet拦截到,而Controller中又没有这样的路径跳转所以会报错误,我就是出现了这样的错误,纠结了半天,因为debugger看到路径是可以进入controller,页面跳转也有对应的jsp,为什么还报404错误,查资料总结说是因为跳转的时候又被拦截了.所以谨慎使用/*
同时使用/*的时候,也会把.js .css都拦截了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值