1.web.xml中的欢迎页:
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
此图来源于:
J2EE中web.xml的作用以及设置默认页
1.1没有指定具体的访问路径
1.1.1当存在欢迎页时
显示时tomcat从第一个找起,如果找到了,就不往下找了,如果没找到,接着往下找。如果最终还是没有找到,报404错误。
1.1.2当不存在欢迎页时
tomcat先找WebContent路径下的index.html,如果找到了,就不往下找了,如果没找到,接着找index.jsp,如果最终还是没有找到,报404错误。
1.2当指定具体的访问路径
不管是否存在欢迎页,都直接会去路径下访问。比如访问如下路径(此时并为配置欢迎页)
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.定义url的拦截形式
2.1 /*:拦截所有的请求(包括视图解析后的jsp,即不能跳转了),不推荐使用
2.2 / :拦截除jsp以外的所有请求,推荐使用
2.3 *.do,*.action:拦截*.do,*.action的请求。
3.在springmvc.xml定义视图解析器
3.1扫描类上的controller注解
如果包路径出错或未配置此项,则不会将类交给spring管理。此时访问WebContent目录下的jsp可正常访问,访问WEB-INF目录(安全目录)下的jsp会谷歌会报错404(火狐没反应),因为无法根据url和requestmapping中的地址进行匹配,也就无法在controller中跳转至WEB-INF目录下的jsp,即无法访问。
3.2@requestMapping注解(既可作用于类上,也可作用于方法上)
类上:提供初步的请求映射信息。相对于web项目的根目录(WebContent即为web项目的根目录)
./:当前目录;../:上一级目录;../../:上上级目录
方法上: 提供进一步的细分映射信息,相对于类上的URL,若类上未标注@RequestMapping,则方法上标记的URL相对于web目录下的根目录