041_ssm——/与/*与*.do的区别?

首先我们应带明白:这是过滤器的条件限制,比如当我们设置*.do的时候,所有的*.do请求路径都会被中央调度器拦截。

中央调度器有点像是过滤器。

/解释:

  /原本是调用Tomcat的DefaultServlet的。这个DefaultServlet是专门处理那些找不到路径的请求最后都转发到了这里。

所以当我们调用静态资源时,我们写的Servlet路径是无法匹配的,最终就会调用DefaultServlet进行调用静态资源。

但是这样我们在SpringMVC中设置/后,有创建了一个DefaultServlet,实现了静态资源访问,这到底是怎么实现的呢?

因为我们配置的/就已经表示了处理找不到的请求啊?关键解题点应该是再我们创建的defaultServlet的地址栏是什么?

它不应该也是/吧,因为我们已经给中央调度器配置了/。

首先我们应该理解/代表的是什么意思?/代表localhost:8080/myWeb,代表的是所有以这个路径开头的url地址,但是他的优先级最递,

所以才能被/one给抢走。这样就造成了没有匹配到路径的url地址请求最后都会走到/.

所以我猜测,我们写的defaultServlt的优先级要高于这个中央调度器的/,但是我们用符号才能表示所有的静态资源都会先找我们写的defaultSerlet呢?

猜你喜欢

转载自www.cnblogs.com/pogusanqian/p/12423671.html