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. 【Diary】CSP-S 2020 游记

    一年 好快 从三百多天倒计时 一点一点掂着 又回来了 但是时间永远不会等待你. --??? CSP-J1/S1 CSP-J1/S1 Day0 请了一上午假. 这段时间都在摸鱼,作业没写( 多备赛一个上 ...

  2. Android View的事件分发机制-源码解析

    为了更好的研究View的事件转发,我们自定以一个MyButton继承Button,然后把跟事件传播有关的方法进行复写,然后添加上日志: 然后把我们自定义的按钮加到主布局文件中: public clas ...

  3. socket 到底是个啥

    哈喽大家好,我是咸鱼 我相信大家在面试过程中或多或少都会被问到这样一个问题:你能解释一下什么是 socket 吗 我记得我当初的回答很是浅显:socket 也叫套接字,用来负责不同主机程序之间的网络通 ...

  4. 【介绍】C++五种迭代器

    目录 1. 输入迭代器(Input Iterator): 2. 输出迭代器(Output Iterator): 3. 前向迭代器(Forward Iterator): 4. 双向迭代器(Bidirec ...

  5. mybatis xml 中 大于、小于、等于 写法

    在 *.xml 中使用常规的 < > = <= >= 会与xml的语法存在冲突 方法一:使用xml 原生转义的方式进行转义 字符名称 sql符号 转义字符 大于号 > & ...

  6. iptables四个表五条链

    iptables四个表五条链     其实关于iptables的使用网上的资料和教程也比较多,主要是要理解其中的路由前和路由后每个表和链所处的位置和作用,明白了也就简单了,以下是我转载的觉得写的比较详 ...

  7. Python网页开发神器fac 0.2.8、fuc 0.1.28新版本更新内容介绍

    fac项目地址:https://github.com/CNFeffery/feffery-antd-components fuc项目地址:https://github.com/CNFeffery/fe ...

  8. Prompt learning 教学[进阶篇]:简介Prompt框架并给出自然语言处理技术:Few-Shot Prompting、Self-Consistency等;项目实战搭建知识库内容机器人

    Prompt learning 教学[进阶篇]:简介Prompt框架并给出自然语言处理技术:Few-Shot Prompting.Self-Consistency等:项目实战搭建知识库内容机器人 1. ...

  9. 18年CCCC赛后总结

    C4赛后总结: 我正式入坑以来,大约5个月,这也是我第一次出去参与这样正式的比赛,其实比赛结果并不尽人意,但有很多还是需要记录下来的,通过这次比赛的确获得了很多的比赛经验: 一赛前: 其实赛前的状态, ...

  10. 基于DevExpress的GridControl实现的一些界面处理功能

    DevExpress的GridControl控件能够提供很多强大的操作,其视图GridView能够通过各种设置,呈现出多种复杂的界面效果,本篇随笔探讨一些常见的GridControl控件及其GridV ...