此图来源于:http://www.360doc.com/content/11/1203/14/3880760_169368917.shtml
显示时tomcat从第一个找起,如果找到了,就不往下找了,如果没找到,接着往下找。如果最终还是没有找到,报404错误。
tomcat先找WebContent路径下的index.html,如果找到了,就不往下找了,如果没找到,接着找index.jsp,如果最终还是没有找到,报404错误。
不管是否存在欢迎页,都直接会去路径下访问。比如访问如下路径(此时并为配置欢迎页)
http://localhost:8080/yuanlairuciBaseSSM/try/login.jsp
而在try/login.jsp中做了跳转
当然类上requestmapping中的值也可以是"/view",方法上的requestmapping中的值也可以是"/study/login.jsp",后缀 .jsp可以省略。
当未指定具体访问哪个页面,而是给定了WebContent下的一个目录,则会先找该目录下的index.html,如果找到了,就不往下找了,如果没找到,接着找index.jsp,如果最终还是没有找到,报404错误。
注意:WEB-INF目录下的文件是不能被直接访问的。(未在controller中做跳转)
http://localhost:8080/yuanlairuciBaseSSM/WebContent/WEB-INF/view/HelloWorld.jsp 直接访问此路径会报404错误。为什么呢?因为WEB-INF目录只对服务端开放,对客户端是关闭的。为了安全需要把一些jsp,html放在WEB-INF目录下。但是,怎么来访问这些页面呢?在controller中跳转到需要访问的WEB-INF中的目录下的文件即可。
2.1 /*:拦截所有的请求(包括视图解析后的jsp,即不能跳转了),不推荐使用
2.2 / :拦截除jsp以外的所有请求,推荐使用
2.3 *.do,*.action:拦截*.do,*.action的请求。
如果包路径出错或未配置此项,则不会将类交给spring管理。此时访问WebContent目录下的jsp可正常访问,访问WEB-INF目录(安全目录)下的jsp会谷歌会报错404(火狐没反应),因为无法根据url和requestmapping中的地址进行匹配,也就无法在controller中跳转至WEB-INF目录下的jsp,即无法访问。
类上:提供初步的请求映射信息。相对于web项目的根目录(WebContent即为web项目的根目录)
./:当前目录;../:上一级目录;../../:上上级目录
方法上: 提供进一步的细分映射信息,相对于类上的URL,若类上未标注@RequestMapping,则方法上标记的URL相对于web目录下的根目录