spring boot 实例之 网页开发

前面体验了一把spring boot(spring boot 初体验)。完成了一个简单的API服务。既然spring boot已经有servlet容器,那我们放个页面进去。让它也包含了界面。可能,有的服务(如用户登录)是需要有用户交互的。我的开发中,大部分服务是不带界面的。所以,在spring boot一系列文章中很少会涉及到。其实都是一样的,只要了解了使用方法,用到的时候就不会有什么问题。我还在计划整理一些前端开发的文章,主要用vue框架。到时候,vue实例中的服务端接的是这spring boot 系列文章的实例。

目录结构

首先在项目的src/main目录中创建一个资源文件夹:resources


资源文件夹

目录结构

在resources目录中建立两个文件夹:static和templates


建立文件夹

我想应该是这样的:templates 存放模板文件,static 存放静态文件。下面一步步试试。

静态资源

放张图片到static试试。会是什么效果呢?

放入图片

启动服务(spring boot 初体验这里有说明怎么启动了,后面就不再重复描述怎么启动服务)。
在浏览器中访问图片

在浏览器中访问图片,这是在根网站根目录下。看这情况静态资源的加入只要把文件放入static就可以访问到了。
如果加入html呢?试试。
html文件

在static中创建一个html文件。随便从W3School中复制一段html过来。

恩,404错误,没找到页面。如果加入文件名称呢?
成功

有了。如果乱码的话,把html文件中的head如下修改

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>我的第一个 HTML 页面</title>
</head>

这样看来,静态页面是可以访问的,但不像其它servlet容器那样,会到index.html定义为默认的静态资源文件。
如果到服务端去跳转。服务端的根跳转到index.html


控制器

新建一个controller,用spring mvc跳转的方法。

package com.biboheart.demos.helloworld.controller;

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

@Controller
public class HelloController {
    @RequestMapping(value = {"/", "/index", "/home"})
    public String index() {
        return "index.html";
    }
}
访问结果

这样就可以用根目录访问到了。

模板文件

先把上面的controller文件删除。在了解一下模板文件会是怎么呢。
如果把刚才html文件放入templates会是怎么样呢?


放入模板

这里是找不到的

加上前面的HelloController之后,还是找不到页面。
在templates文件夹中放的动态页面,spring boot 推荐使用thymeleaf来做动态页面。
在pom.xml加入

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

现在是这么个结构


文件结构

现在浏览器中打开就可以访问了。


访问页面

这里提下,动态页面是可以从服务端向页面传参数的。
来改造一下。

HelloController

@RequestMapping(value = {"/", "/index", "/home"})
public String index(Model model) {
        model.addAttribute("name", "biboheart");
        return "index.html";
}

页面改造

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>我的第一个 HTML 页面</title>
</head>

<body>
    <p>body 元素的内容会显示在浏览器中。</p>
    <p>title 元素的内容会显示在浏览器的标题栏中。</p>
    <span>hello </span><span th:text="${name}"></span>
</body>
</html>

访问页面


服务传参到页面

总结:文章主要体验了spring boot对静态页面、动态页面的处理。我觉得服务端还是不去做前端的工作。体验下,了解下,知道有这么回事。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,524评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,869评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,813评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,210评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,085评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,117评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,533评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,219评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,487评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,582评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,362评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,218评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,589评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,899评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,176评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,503评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,707评论 2 335

推荐阅读更多精彩内容