spring中/和/*和/**的区别,简介明了搞清楚怎么用

区别是什么?

请一句话搞明白下面的文字意思,理解可就可以走人。

/ 和 /*区别

/ 拦截所有请求 包括静态资源和动态请求 但是不拦截jsp
/*拦截所有请求 包括静态资源和动态请求 也拦截jsp
区别就在于/ 不拦截jsp /*拦截jsp

/* 和 /** 区别

/**的意思是所有文件夹及里面的子文件夹
/*是所有文件夹,不含子文件夹

注意点案例

理解下面的案例有助于理解如何使用

场景:当我在客户端调用URL:/user/list然后返回user.jsp视图,

  • 当配置的是/:DispathcherServlet拿到这个请求然后返回对应的controller,
    然后依据Dispather Type为Forward类型转发到user.jsp视图,即就是请求user.jsp视图(/user/user.jsp),此时Dispather没有拦截/user/user.jsp,
    因为此时你配置的是默认的/,就顺利的交给ModleAndView去处理显示了。
  • 当配置的是/*:DispathcherServlet拿到这个请求然后返回对应的controller,然后通过Dispather Type通过Forward转发到user.jsp视图,
    即就是请求user.jsp视图(/user/user.jsp),此时Dispather已经拦截/user/user.jsp,Dispatcher会把他当作Controller去匹配,没有匹配到就会报404错误。

结论:在配置视图的时候尽量用/这种方式。

结论

通过注意点案例我们大概可以理解为什么要有两个的区分。配置/*是为了直接访问静态资源,配置/是为了避免内部forward到视图层时被拦截。所以根据业务决定如何具体控制。另外,无论是拦截器,过滤器,还是安全等本质上都是一样的。上述规则一样有效。

参考:
https://www.cnblogs.com/searain/articles/8391773.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值