springMVC启动之后默认打开的首页是webapp/index.jsp。位置和页面名称都不能错,否则将报404错误。
这个页面是可以改动的,如果默认页面是webapp/test/list.jsp
方法1、如果是静态页面,并且不在WEB-INF目录,那么很简单,直接在web.xml里面添加欢迎页面即可:
方法2、如果是通过servlet或者controller转发的页面,那就得分如下几种情况:
1)精确匹配:
由于是默认首页,那么浏览器的地址要么是http://localhost:8080/context/,要么是http://localhost:8080/,
此时的路径是“/”,当服务器收到请求时会首先到url-pattern里面按顺序去匹配,只有匹配不了的才会去找welcome-file-list,然后取出welcome-file-list里面的路径再去url按顺序匹配,匹配上以后就分发到相应的servlet获取controller。如图:
服务器接收到的请求是:http://localhost:8080/example/,对应的servletPath是"/",首先去匹配url-pattern里面的"/welcome",匹配不上,然后去找welcome-file里面的路径,找到welcome,然后又用welcome去匹配url-pattern里面的"/welcome",此时匹配上,就渠道controller。
2)后缀匹配:
对于后缀匹配,其实和精确匹配一样,都是先去url-pattern找,找不到再去welcome-file里面取出路径再去匹配。
3)路径匹配:
第一个:“/*”:这个不能匹配。
第二个:缺省匹配,如果url-pattern里面配置的路径是“/”,这是能匹配所有路径请求的,此时welcome-file-list是多余的,配置也不会起作用。
此时如果要想设置默认首页,那就只能再controller或者servlet上面开刀了:
1.在spring配置文件开启缺省匹配
2.web.xml配置
3.controller或者servlet转发
另:对于缺省匹配,如果上述配置都不满意,可以直接修改spring的配置,打开spring配置文件进行修改,有两种方式:
1)重定向:
2)转发: