1、tomcat配置默认访问页面

进入 tomcat 的 conf 目录,编辑 web.xml 文件。在 <web-app></web-app> 添加默认访问页面。

<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 );
}
}

注:在Spring Boot 2.0版本之后编辑器提示已过时,实现WebMvcConfigurer接口即可。

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,除了tomcat的配置给的权限是最高的,所以比3、4两种优先级高。第3种因为Controller配置了"/",会优先匹配,而不是寻找/index的Controller。

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

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


SpringBoot基础学习(番外9.1)Spring MVC或Spring Boot配置默认访问页面不生效?的更多相关文章

  1. Spring MVC或Spring Boot配置默认访问页面不生效?

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

  2. MacOS下SpringBoot基础学习

    学于黑马和传智播客联合做的教学项目 感谢 黑马官网 传智播客官网 微信搜索"艺术行者",关注并回复关键词"springboot"获取视频和教程资料! b站在线视 ...

  3. Spring MVC学习(一) Spring MVC基本介绍以及配置

    Spring MVC学习(一) Spring MVC基本介绍以及配置   摘要:这篇笔记是对于Spring MVC的第一部分的学习中的整理,主要记录了Spring MVC的基础知识以及配置一个简单的S ...

  4. Spring MVC 学习总结(八)——Spring MVC概要与环境配置(IDEA+Maven+Tomcat7+JDK8、示例与视频)

    一.MVC概要 MVC是模型(Model).视图(View).控制器(Controller)的简写,是一种软件设计规范,用一种将业务逻辑.数据.显示分离的方法组织代码,MVC主要作用是降低了视图与业务 ...

  5. Spring MVC和Spring Boot的理解以及比较

    Spring MVC是什么?(1)Spring MVC是Spring提供的一个强大而灵活的模块式web框架.通过Dispatcher Servlet, ModelAndView 和 View Reso ...

  6. Spring,Spring MVC及Spring Boot区别

    什么是Spring?它解决了什么问题? 我们说到Spring,一般指代的是Spring Framework,它是一个开源的应用程序框架,提供了一个简易的开发方式,通过这种开发方式,将避免那些可能致使代 ...

  7. 【转】Spring,Spring MVC及Spring Boot区别

    对于一个Java开发者来说,Spring可谓如雷贯耳,无论是Spring框架,还是Spring引领的IOC,AOP风格,都对后续Java开发产生的深远的影响,同时,Spring社区总能及时响应开发者的 ...

  8. spring、spring mvc与spring boot的区别是什么?

    Spring 的功能 Spring 框架就像一个家族,有众多衍生产品例如 boot.security.jpa等等.但他们的基础都是Spring 的 ioc和 aop ioc 提供了依赖注入的容器 ao ...

  9. Spring,Spring MVC,Spring Boot 三者比较

    Spring,Spring MVC,Spring Boot 三者比较 Spring 框架就像一个家族,有众多衍生产品例如 boot.security.jpa等等.但他们的基础都是Spring 的 io ...

  10. spring mvc和spring boot的区别

    spring boot只是一个配置工具,整合工具,辅助工具. springmvc是框架,项目中实际运行的代码 Spring 框架就像一个家族,有众多衍生产品例如 boot.security.jpa等等 ...

随机推荐

  1. Java设计模式 —— 装饰模式

    12 装饰模式 12.1 装饰模式概述 Decorator Pattern: 动态地给一个对象增加一些额外的职责.提供一种比使用子类更加灵活的方案来扩展功能. 装饰模式是一种用于替代继承的技术,通过一 ...

  2. MySQL(十一)索引的分类和创建原则

    索引的创建与设计原则 1 索引的声明与使用 1.1 索引的分类 ​ MySQL索引包括普通索引.唯一性索引.全文索引.单列索引.多列索引和空间索引 按照逻辑结构划分,主要有四种:普通索引.唯一性索引. ...

  3. Redis分布式锁这样用,有坑?

    背景 在微服务项目中,大家都会去使用到分布式锁,一般也是使用Redis去实现,使用RedisTemplate.Redisson.RedisLockRegistry都行,公司的项目中,使用的是Redis ...

  4. 视频会议中的AEC、AGC、ANS是什么?

    视频会议中的AEC.AGC.ANS是什么? 1.AGC是自动增益补偿功能(Automatic Gain Control),AGC可以自动调麦克风的收音量,使与会者收到一定的音量水平,不会因发言者与麦克 ...

  5. [OpenCV-Python] 21 OpenCV 中的轮廓

    文章目录 OpenCV-Python:IV OpenCV中的图像处理 21 OpenCV 中的轮廓 21.1 初识轮廓 21.1.1 什么是轮廓 21.1.2 怎样绘制轮廓 21.1.3 轮廓的近似方 ...

  6. 禁用Chrome浏览器Websocket

    前言:最近遇到关于Websocket的相关测试,推荐一个禁用Chrome浏览器Websocket的扩展插件 一.下载使用 1.https://github.com/arthepsy/chrome-di ...

  7. STM32 + RTThread + UGUI

    一.概述 开发板:STM32F103C8T6 显示器:ST7735S RT-Thread:5.0.0 玩过 GUI 的小伙伴都知道,界面的显示是一个个像素点组合起来的,那么直接构建出来炫酷的 GUI ...

  8. 【解决方法】白嫖利用WPS自带C盘清理大师,清理C盘空间,自测清理19.5G空间,太感人了!

    环境: 工具:WPS-WPS清理大师 系统版本:Windows 10 问题描述: 描述:本人C盘常年不足10G,也用过一些其他的清理工具,但是也不懂,不敢乱删除东西.一直得过且过. 由于C盘中有很多的 ...

  9. Snort的安装——Fedora

    Snort Fedora Install 简介 Snort 是世界上知名的开源入侵防御系统 (IPS).Snort IPS 使用一系列规则来帮助定义恶意网络活动,并使用这些规则来查找与其匹配的数据包并 ...

  10. Pwn系列之Protostar靶场 Stack2题解

    (gdb) disass main Dump of assembler code for function main: 0x08048494 <main+0>: push ebp 0x08 ...