springboot的web开发

杨治中      2022-04-26     400

关键词:


简介
Web开发的核心内容主要包括内嵌的Servlet容器和SpringMVC。

SpringBoot使用起来非常简洁,大部分配置都有SpringBoot自动装配。

SpringBoot的web支持
SpringBoot提供了spring-boot-starter-web为web开发予以支持,而这个启动器内嵌了Tomcat以及SpringMVC依赖。而web相关的自动配置存储在spring-boot-autoconfigure.jar的org.springframework.boot.autoconfigure.web包下。
其中如图:

 


从这些文件名就可以看出:

ServletWebServerFactoryAutoConfiguration和ServerProperties自动配置内嵌的Servlet容器
HttpEncodingAutoConfiguration和ServerProperties自动配置http编码
MultipartAutoConfiguration和MultipartProperties自动配置上传文件属性
WebMvcAutoConfiguration和WebMvcProperties配置Spring MVC


Thymeleaf,模板引擎
SpringBoot中推荐使用Thymeleaf,是因为Thymeleaf提供了完美的SpringMVC支持。

基础
Thymeleaf是一个Java类库,让是一个xml/xhtml/html5的模板引擎,可以作为MVC的View层。

Thymeleaf还提供了额外的模块与SpringMVC集成。

Thymeleaf 官网

Thymeleaf 在Github 的主页

Thymeleaf的自动配置规则:ThymeleafProperties

@ConfigurationProperties(prefix = "spring.thymeleaf")
public class ThymeleafProperties
    private static final Charset DEFAULT_ENCODING;
    public static final String DEFAULT_PREFIX = "classpath:/templates/";
    public static final String DEFAULT_SUFFIX = ".html";
    private boolean checkTemplate = true;
    private boolean checkTemplateLocation = true;
    private String prefix = "classpath:/templates/";
    private String suffix = ".html";
    private String mode = "HTML";
    private Charset encoding;


可以看到其中默认的前缀和后缀,所以只需要把html页面放在templates下,thymeleaf就会自动渲染。

模板引擎的作用
        做好一个前端页面模板,其中包含一些动态的值,我们写一些表达式代替。而这些值,是从后台获取的已经封装好的数据。然后把这个页面模板和数据交给模板引擎,模板引擎按照数据帮我们解析表达式、并把结果填充到指定的位置,然后把这个数据最终生成一个想要的内容输出到前端页面,这就是我们这个模板引擎,不管是jsp还是其他模板引擎,都是这个思想。只不过,不同模板引擎之间,语法不同。

Thymeleaf模板引擎,是一个高级语言的模板引擎,语法更简单,功能更强大。

使用Thymeleaf模板引擎
引入Thymeleaf并在html页面添加命名空间约束
<!--thymeleaf-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

 xmlns:th="http://www.thymeleaf.org"

Thymeleaf语法
参考Thymeleaf 官网

我们可以使用任意的th:xxx来替代html中原生属性的值

 


常见的表达式语法

Simple expressions:(表达式语法)
  Variable Expressions: $...:获取变量值
  Selection Variable Expressions: *...:选择表达式:和$在功能上是一样;
  Message Expressions: #...:获取国际化内容
  Link URL Expressions: @...:定义URL;
  Fragment Expressions: ~...:片段引用表达式

Literals(字面量)
      Text literals: 'one text' , 'Another one!' ,…
      Number literals: 0 , 34 , 3.0 , 12.3 ,…
      Boolean literals: true , false
      Null literal: null
      Literal tokens: one , sometext , main ,…
      
Text operations:(文本操作)
    String concatenation: +
    Literal substitutions: |The name is $name|
    
Arithmetic operations:(数学运算)
    Binary operators: + , - , * , / , %
    Minus sign (unary operator): -
    
Boolean operations:(布尔运算)
    Binary operators: and , or
    Boolean negation (unary operator): ! , not
    
Comparisons and equality:(比较运算)
    Comparators: > , < , >= , <= ( gt , lt , ge , le )
    Equality operators: == , != ( eq , ne )
    
Conditional operators:条件运算(三元运算符)
    If-then: (if) ? (then)
    If-then-else: (if) ? (then) : (else)
    Default: (value) ?: (defaultvalue)
    
Special tokens:
    No-Operation: _



使用SpringBoot的步骤
创建一个SpringBoot项目,选择需要的模块,SpringBoot默认将选择的模块自动配置。
手动配置文件中的配置部分。
更加专注编写业务代码,不需要考虑之前的一大堆配置。
静态资源的自动配置
在自动配置类WebMvcAutoConfigurationAdapter的addResourceHandlers方法中 定义了以下静态资源的自动配置。

1. 类文件路径
把类路径向下的/META-INF/resources,/resources,/static和/public文件夹下的静态文件直接映射为/**,可以通过http://localhost:8080/**来访问

2. webjar
何谓webjar,webjar就是将我们常用的脚本框架封装在jar包中的jar包

webjar官网

把webjar的/META-INF/resources/webjars/下的静态资源文件映射成/webjar/**,可以通过http://localhost:8080/webjar/**来访问

"classpath:/META-INF/resources/"   localhost:8080/webjars/
"classpath:/resources/"  //优先级最高   localhost:8080/
"classpath:/static/"   //优先级其次,默认     localhost:8080/
"classpath:/public/"    //优先级最低    localhost:8080/

 

阅读世界,共赴山海 423全民读书节,邀你共读

4.springboot的web开发1

一.回顾好的,同学们,那么接下来呢,我们开始学习SpringBoot与Web开发,从这一章往后,就属于我们实战部分的内容了;其实SpringBoot的东西用起来非常简单,因为SpringBoot最大的特点就是自动装配。使用SpringBoot的步骤:创建一个S... 查看详情

springboot:web综合开发

web开发springbootweb开发非常的简单,其中包括常用的json输出、filters、property、log等json接口开发在以前的spring开发的时候需要我们提供json接口的时候需要做那些配置呢添加jackjson等相关jar包配置springcontroller扫描对接的方法添加@Resp... 查看详情

springboot框架学习6-springboot的web开发

...章节主要内容:通过前面的学习,我们了解并快速完成了springboot第一个应用。springboot企业级框架,那么springboot怎么读取静态资源?如js文件夹,css文件以及png/jpg图片呢?怎么自定义消息转换器呢?怎么自定义springmvc的配置呢?... 查看详情

springboot与web开发

简介 使用SpringBoot;1)、创建SpringBoot应用,选中我们需要的模块;比如web等等2)、SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置就可以运行起来3)、自己编写业务代码; 参考这里:比如要连... 查看详情

springboot_web开发

3.19目录1.Springboot开发步骤2.Springboot对静态资源的映射规则3.模板引擎引入ThymeleafThymeleaf使用和语法4.SpringMVC自动配置原理5.修改Springboot的默认配置6.全面接管SpringMvc  1.步骤:1.创建springboot应用,选中需要的模块2.springboot已... 查看详情

springboot的web应用程序开发

SpringBoot非常适合Web应用程序开发。您可以使用嵌入式Tomcat、Jetty、Undertow或Netty创建一个自包含的HTTP服务器。大多数Web应用程序使用该​​spring-boot-starter-web​​​模块来快速启动和运行。您还可以选择使用该​​spring-boot-starter-... 查看详情

springboot用于web开发

1.使用SpringBoot;1)创建SpringBoot应用,选中我们需要的模块;2)SpringBoot已经默认将这些场景配置好了,只需要在配置文件中指定少量配置就可以运行起来3)自己编写业务代码;自动配置原理?xxxxAutoConfiguration:帮我们给容器中... 查看详情

springboot快速体验web开发

spring-boot-starter-web是SpringBoot对Web开发的支持,主要包括RESTful、参数校验、使用Tomcat作为内嵌容器等功能1.json的支持2.请求传参使用SpirngBoot可以轻松的对请求做一些限制,如为了安全只允许POST请求的访问。只需要在方法上添加一... 查看详情

springboot:web开发-模板引擎freemarker

一、简介springboot的web应用开发,是基于springmvc。Springboot在spring默认基础上,自动配置添加了以下特性: 1、包含了ContentNegotiatingViewResolver和BeanNameViewResolverbeans。 2、对静态资源的支持,包括对WebJars的支持。 3、自动... 查看详情

springboot(二):web综合开发

SpringBoot(二):web综合开发来源:纯洁的微笑,www.ityouknow.com/springboot/2016/02/03/springboot(二)-web综合开发.html如有好文章投稿,请点击→这里了解详情上篇文章介绍了Springboot初级教程:《 springboot(一):入门篇 》... 查看详情

springboot学习笔记——web开发探究(代码片段)

前置知识:SpringBoot学习笔记——SpringBoot简介与HelloWordSpringBoot学习笔记——源码初步解析SpringBoot学习笔记——配置文件yaml学习SpringBoot学习笔记——JSR303数据校验与多环境切换SpringBoot学习笔记——自动配置原理Web开发探究简介... 查看详情

springboot干货系列:开发web应用jsp篇

SpringBoot干货系列:(五)开发Web应用JSP篇原创 2017-04-05 嘟嘟MD 嘟爷java超神学堂前言上一篇介绍了SpringBoot中使用Thymeleaf模板引擎,今天来介绍一下如何使用SpringBoot官方不推荐的jsp,虽然难度有点大,但是玩起来还是蛮... 查看详情

springboot的web开发支持与thymeleat模板引擎(代码片段)

SpringBoot的Web开发支持与Thymeleat模板引擎Web开发是基于B/S架构的应用软件开发技术,分为前端(用户接口)和后端(业务逻辑和数据),前端的可视化及用户交互由浏览器实现,即以浏览器作为客户端,实现客户与服务... 查看详情

springboot框架学习7-springboot的web开发-自定义消息转换器

...章节主要内容:通过前面的学习,我们了解并快速完成了springboot第一个应用。springboot企业级框架,那么springboot怎么读取静态资源?如js文件夹,css文件以及png/jpg图片呢?怎么自定义消息转换器呢?怎么自定义springmvc的配置呢?... 查看详情

springboot开发web应用

...候,需要引用大量的js、css、图片等静态资源。默认配置SpringBoot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则:/static/public/resources/META-INF/resources举例:我们可以在src/main/resources/目录下创建static,在该位置... 查看详情

springboot框架学习9-springboot的web开发-错误解决及跳转页面

...章节主要内容:通过前面的学习,我们了解并快速完成了springboot第一个应用。springboot企业级框架,那么springboot怎么读取静态资源?如js文件夹,css文件以及png/jpg图片呢?怎么自定义消息转换器呢?怎么自定义springmvc的配置呢?... 查看详情

springboot实战实现web的常用功能

...还需要考虑到与Web服务器关联的Servlet相关组件的定制。SpringBoot框架支持整合一些常用Web框架,从而实现Web开发,并默认支持Web开发中的一些通用功能。本 查看详情

springboot-web综合开发(转)(代码片段)

Web开发SpringBootWeb开发非常的简单,其中包括常用的json输出、filters、property、log等json接口开发在以前使用Spring开发项目,需要提供json接口时需要做哪些配置呢添加jackjson等相关jar包配置SpringController扫描对接的方法添加@ResponseBody... 查看详情