SpringBoot——默认页面在哪里?

简单介绍:

在之前我们创建了一个SpringBoot的应用程序,并且我们也启动了,但是我们都是在postman或者是在控制台看到了我们的界面,那么在浏览器中看到的界面其实只有一个:

这个界面其实就是SpringBoot的报错默认界面,表示找的资源没有找到。在之前我们学习SpringMVC的时候,我们的页面都是放在webapp下,然后通过页面解析器跳转到我们的页面中, 并且如果我们创建了一个名字叫做index的HTML文件或者JSP文件,那么在我们启动程序的时候,就可以当作默认主页显示,那么SpringBoot放置默认首页地方在哪里呢?

这时候就需要介绍一下我们resources下面的两个文件夹了:

static:

这个页面就是专门用来存放静态资源的文件夹,并且也是我们访问资源的根路径,也就是说当我们在这个文件夹下放置了资源的时候可以直接进行访问,或者是创建一个index.html的文件时可以当作默认的页面:

我们在这个文件夹下创建一个index.html文件,文件内容如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>首页</title>
</head>
<body>
<h1>创建一个默认页面</h1>
</body>
</html>

 然后我们启动程序,在浏览器中访问我们服务器地址:

这样就可以在浏览器中显示我们的默认主页中的内容。

接下来我们验证一下static是不是我们项目的根路径,很简单,我们在这个文件夹下放置一个静态资源,然后直接在地址栏中访问这个静态资源,如果可以访问到那么就说明我们的猜想是正确的:

我们放了一个名字叫做01.jpg的图片文件,然后我们直接在地址栏中输入这个文件的名字,如果可以直接访问到,那么就说明这个文件夹就是我们的根路径:

 

顺利的访问到了,说明我们的静态资源和默认首页都是可以放在这个里面的。

Templates: 

一般我们把需要通过controller跳转的页面放在Templates中,接下来我们就创建一个Controller去跳转放在Templates文件夹中的资源:

package com.Spring;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class retrunController {
    @RequestMapping("/html")
    public String toHtml(){
        System.out.println("我要跳转页面了!");
        return "success";
    }
}

然后看一下Templates文件夹中的内容:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>跳转页面</title>
</head>
<body>
<h1>这是放在Template中用来跳转的页面</h1>
</body>
</html>

 要实现页面的跳转,还需要导入一个依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

导入依赖之后需要刷新一下Maven,然后看到依赖导入进来就可以了。

我们重启服务器,然后在页面中访问我们的controller中的映射地址,查看是否能实现跳转的功能:

可以看到我们的请求确实响应了正确的页面,那么就说明我们的配置是正确的,那么就来介绍一下刚才我们导入的依赖是干什么的。

thymeleaf:现代的服务器端 Java 模板引擎

百里香叶 (thymeleaf.org)https://www.thymeleaf.org/

上图是它的主页,当然是经过了浏览器自动翻译的,简单地说他就是可以帮助我们在HTML静态页面中,使用之前我们在JSP中是用到的模板,什么是模板,还记得之前我们的Java程序与JSP交互的时候学到的那种一对花括号然后中间有一个变量,这个变量可以动态的获取到后台的值,从而显示不同的效果。那么这是JSP的技术,HTML中显然是不会用的,HTML是静态的,那么他的作用就是帮我们在静态的网页中显示动态的信息,非常的优雅高效。

但是现在我们并不需要知道他的太多内容,我们用到的只是他的一个叫做模板解析器的东西,那么这个模板解析器可以帮助我们在Java程序和HTML交互的时候找到正确路径下的静态HTML资源,也就是帮助我们实现了页面的跳转。

那么说为什么这么麻烦呢?我们之前也可以直接使用JSP页面然后直接跳转啊,为什么现在又需要一个插件在HTML上增加JSP的功能,我们直接用JSP不可以吗?

SpringBoot说了,可以,但是不推荐,原因如下:

对于SpringBoot来说,使用JSP会导致项目出现一些问题,比如在打包jar包不支持JSP,Undertow不支持JSP,以及他不会覆盖SpringBoot默认的错误界面等等问题,所以我们就需要使用HTML然后集合一些类似于 thymeleaf这样的模板引擎来将静态页面转换成动态的。

当然除了thymeleaf之外还有很多其他优秀的模板引擎解决方案,在不知道使用什么方案的时候就去多看一看,然后就明白了在什么时候要用到何种技术。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值