我是靠谱客的博主 自然小天鹅,最近开发中收集的这篇文章主要介绍Spring MVC或Spring Boot设置默认访问页面及项目配置不生效原因,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

相信在开发项目过程中,设置默认访问页面应该都用过。但是有时候设置了却不起作用。你知道是什么原因吗?今天就来说说我遇到的问题。

首先说说配置默认访问页面有哪几种方式。

1.tomcat配置默认访问页面
进入 tomcat 的 conf 目录,编辑 web.xml 文件。在 添加默认访问页面。

<welcome-file-list>
	<welcome-file>index.html</welcome-file>
	<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

首先默认访问index.html页面,如果该页面不存在,则会访问index.jsp,以此类推。
这种方式适合访问静态的页面(也包括JSP)或者说是没有任何参数的页面。

2.Spring Boot设置index默认页面
新建一个类,继承WebMvcConfigurerAdapter,并加上@Configuration,此方式在tomcat没有配置默认访问页面的情况下生效。

@Configuration
public class DefalutPage extends WebMvcConfigurerAdapter {

	@Override
	public void addViewControllers( ViewControllerRegistry registry )
	{
    	registry.addViewController( "/" ).setViewName( "forward:/index.html" );
    	registry.setOrder( Ordered.HIGHEST_PRECEDENCE );
    	super.addViewControllers( registry );
		}
	}

3.配置根节点访问“/”方式
在 Controller 配置一个名为 “/” 的访问路径。当输入完网址后就会调用。此方式在前面三种都没有配置的情况才会调用。

@RequestMapping(value="/")
    public String index(){
    	return "index";
    }
}

4.Controller 配置index默认页面
如果tomcat和Spring Boot没有配置默认访问页面,Spring 会主动去寻找 Controller 的 index。如果有则会调用,否则会报404错误。

@RequestMapping(value="/index")
	public String index(){
		return "index";
	}
}

优先级:1 > 2 > 3 > 4。因为tomcat的优先级比Spring高,相应于是最高的。以上的配置,都会先去tomcat是否配置默认访问页面。第2种方式由于设置了HIGHEST_PRECEDENCE,给的权限是最高的,所以比3、4两种优先级高。第3种因为Controller配置了"/",会优先匹配,而不是寻找/index的Controller。

注:如果项目的web.xml没有配置设置访问页面,tomcat也会自动去寻找WebRoot目录下的index文件。如果要使后面三种方式生效,需保证tomcat没有配置设置访问页面或WebRoot目录下没有index文件。

遇到问题:使用了第2种Spring Boot设置默认访问方式,由于是使用外部的tomcat,并且tomcat配置了几个默认访问页面。当时对设置默认访问的优先级没有系统的了解,导致花费了大半天才弄明白。

最后,欢迎访问我的博客网站:https://geshanzsq.com/article/3

最后

以上就是自然小天鹅为你收集整理的Spring MVC或Spring Boot设置默认访问页面及项目配置不生效原因的全部内容,希望文章能够帮你解决Spring MVC或Spring Boot设置默认访问页面及项目配置不生效原因所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部