“/”用来表明对应的Servlet为应用默认的Servlet,”/*”用来表示所有的路径都将会由此servlet拦截
<url-pattern>/*</url-pattern>
会匹配到 *.jsp等,也就是说:无论localhost:8080/demo/index.jsp后面加的是什么都会访问到该servlet .而不会访问到该jsp页面
<url-pattern>/</url-pattern>
不会匹配到 *.jsp等,也就是说:在localhost:8080/demo/index.jsp它会访问到这个jsp网页,而不会进入该指向的servlet。
注意:
当使用 "/" 时,如果在web.xml中使用了过滤静态文件配置:
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
那么localhost:8080/demo/ 它会默认访问index.html
如果没有配置,则会默认进入指定的servlet,没有指定则报404错误.
当你使用 "/*" 时,配置了过滤文件也会失效。
总结:创建项目时,尽量使用”/”,然后再配置不要拦截静态文件配置!