SpringBoot静态资源访问+拦截器+Thymeleaf模板引擎实现简单登陆

在此记录一下这十几天的学习情况,卡在模板引擎这里已经是四天了。 对Springboot的配置有一个比较深刻的认识,在此和大家分享一下初学者入门Spring Boot的注意事项,如果是初学SpringBoot,或者有意向学习Springboot的朋友,这篇文章可以简单的来帮助你,处理一些不必要的麻烦。

开发环境:

  IDea

  JDK1.8

  SpringBoot2+

  Maven3.5

  1、配置Maven

  首先我们打开IdeA我们从新建一个项目开始。SpringBoot是基于Maven来管理Jar包的。首先我们需要在Idea中配置我们Maven的本地仓库位置

  

  这是我本地Maven的安装目录,Idea集成了Maven,其实是不用配置的,这里简述一下配置Maven的步骤

  打开Maven安装目录下 /conf/文件夹下的     settings.xml

这个是Maven的配置文件,我们可以在其中的  如下.

将上面的默认本地仓库位置做一个替换,可以从上图看到我们的本地仓库位置。 之后我们在项目中,就可以通过Pom.xml将我们需要的JAr 配置到Maven中,并且由Maven来管理我们的Jar包

注意,每次更新Pom文件的时候,建议刷新一下当前的Maven项目。

  首先我们来配置自己的本地仓库 ,我们在Idea的主界面打开设置

注意,如果是在项目页面进行设置的话生效的是当前的项目,如果是在Idea主界面进行设置的话,那么生效的是整个IDea

我们在搜索框中输入Maven然后出现以下界面,找到自己的Maven的安装目录

并且指定自己的Maven配置文件

然后我们创建一个SpringBoot的项目,幸运的是,SpringBoot支持快速构建Maven项目我们

注意:这一步需要联网来下载组件!

我们可以在如下的界面选择我们项目需要引入的组件,并且来引入需要的Start

我们这里选用的tymeleaf的模板引擎和 Web的支持

项目骨架:

静态资源访问的问题,SpringBoot自动将  如下几个文件夹作为整个项目的静态资源文件夹优先级自高至低如下

"classpath:/META-INF/resources/",
"classpath:/resources/",
"classpath:/static/",
"classpath:/public/"
"/":当前项目的根路径

我们将准备好的图片分别放到如上几个文件夹上,用来测试访问路径优先级:

同时:我们通过查看 SpringBoot 自动配置中的 Thymeleaf源码得知以下:

解析前缀以及后缀和默认路径,同时,文件名为Index.html的文件默认被识别为当前项目的主页:

区别于Jsp的不同是 Thymeleaf使用.html后缀的页面来进行展示,我们需要在页面上引入thymeleaf的命名空间

xmlns:th="http://www.thymeleaf.org"   你不引入也是可以的但是没有快捷提示!

我们在页面上 添加了一个Img 同时启动SpringBoot

启动成功:

可以看到图片可以正常的访问,同时Thymeleaf解析的就是我们类路径下的  templates文件夹,同时为index.html的页面会被解析为首页。

篇幅有限,这里仅对SpringBoot静态资源有一个简单的介绍,有兴趣的小伙伴可以将图片路径做个更改一一尝试。

并且这里有一点需要注意的是,在是同thymeleaf引入资源的时候不需要加 当前静态资源文件夹的名字,例如

如上简单的页面访问我们已经搞定了,现在解决一下 拦截器和拓展Spring Boot配置时 静态资源失效的问题

首先我们先创建一个自定义的拦截器,注意,是在SpringBoot启动类同级别的目录下创建的,这里牵扯了一个SpringBoot的自动装配原理,默认扫描了SpringBoot启动类同级别的文件和其子包,感兴趣的同学可以去看一下SpringBoot的自动装配原理。

然后我们在自定义的拦截器中使用日志来记录,这里是使用了slf4J和其实现logbak

层次图如下

想让我们的自定义拦截器生效,还不行,我们需要写一个自定义配置类来完成我们的操作  如下图,有两种方式来帮助我们拓展配置,注意,这是在SpringBoot2.0之后  废弃了原有的    WebMvcConfigurerAdapter

这里选用的是第一种方法,同时对拦截器进行配置拦截所有资源测试日志输出。  同时还可以对不需要拦截的资源做排除,注意下这个形参的参数类型。可以传入数组

之后便是对拦截器的测试:

我们在浏览器访问默认端口后  发现页面 404  观看控制台后发现 拦截器生效 ,即日志已经打印。

那么我们的Index首页去哪了呢?
我们首先看一下访问不到的页面:

后来我们知道是拦截器在作怪,我们添加一个视图映射就可以解决找不到主页的问题了:

成功访问:

成功访问,这次的心得就分享到这里了,希望能帮到大家,一定要注意上面我说到的知识点,如果对哪一个知识点不熟悉的话,一定要多查资料,多思考,想想为什么这么做,

今天也正好是大家初一,给大家拜个年,新年快乐。祝大家在新的一年里,编译一遍过,运行无Bug,最后有一句话送给大家:不积跬步,无以至千里

Java交流群 682677231

原文地址:https://www.cnblogs.com/Mzcc/p/10352466.html

时间: 02-02

SpringBoot静态资源访问+拦截器+Thymeleaf模板引擎实现简单登陆的相关文章

(二)SpringBoot基础篇- 静态资源的访问及Thymeleaf模板引擎的使用

一.描述 在应用系统开发的过程中,不可避免的需要使用静态资源(浏览器看的懂,他可以有变量,例:HTML页面,css样式文件,文本,属性文件,图片等): 并且SpringBoot内置了Thymeleaf模板引擎,可以使用模板引擎进行渲染处理,默认版本为2.1,可以重新定义Thymeleaf的版本号,在maven的配置文件中配置如下内容: <properties> <thymeleaf.version>3.0.2.RELEASE</thymeleaf.version> &l

Spring Boot干货系列:(六)静态资源和拦截器处理

Spring Boot干货系列:(六)静态资源和拦截器处理 原创 2017-04-05 嘟嘟MD 嘟爷java超神学堂 前言 本章我们来介绍下SpringBoot对静态资源的支持以及很重要的一个类WebMvcConfigurerAdapter. 正文 前面章节我们也有简单介绍过SpringBoot中对静态资源的默认支持,今天详细的来介绍下默认的支持,以及自定义扩展如何实现. 默认资源映射 Spring Boot 默认为我们提供了静态资源处理,使用 WebMvcAutoConfiguration

spring boot Thymeleaf模板引擎 最简单输出例子

spring boot  Thymeleaf模板引擎  最简单输出例子 控制器代码如下: @GetMapping(value = "/test")public String test(Model model){ List<Boy> boy = new ArrayList<Boy>(); boy.add(new Boy("xx",11)); boy.add(new Boy("yy",22)); boy.add(new Boy

《SpringBoot静态资源访问》

SpringBoot 1.X 版本和 SpringBoot 2.X 版本在静态资源访问上有一些区别,如果直接从 1.X 升级到 2.X 肯定是有问题的.这篇文章就来讲讲这方面问题,也是项目中的坑. 时间关系,待续 原文地址:https://www.cnblogs.com/xums/p/9285969.html

springboot静态资源访问

做web项目时候有大量的html,css,js,图片等静态资源需要加载访问 springboot中默认的webapp下的文件可以直接访问 访问 http://127.0.0.1:8080/static/pic/1.jpg 可以打开图片 访问 http://127.0.0.1:8080/1.jpg 也可以打开图片 Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则: /static /public /resources /META-INF/resourc

springboot学习入门简易版四---springboot2.0静态资源访问及整合freemarker视图层

2.4.4 SpringBoot静态资源访问(9) Springboot默认提供静态资源目录位置需放在classpath下,目录名需要符合如下规则 /static  /public  /resources  /META-INF/resources 可以在src/main/resources目录下创建static,在该位置放置一个图片文件. 启动程序后,尝试访问http://localhost:8080/D.JPG,如能显示图片,配置成功. 2.5 SpringBoot整合freemarker视图

thymeleaf 模板引擎

1.创建模板解析器 Create Template Resolver  用来加载模板 1 // create template resolver 2 //创建模板解析器可以用Servlet上下文模板解析器ServletContextTemplateResolver或者类加载模板解析器ClassLoaderTemplateResolver 3 4 ServletContextTemplateResolver templateResolver = new ServletContextTemplate

jdbcTemplate 和 Thymeleaf模板引擎 查询 到模板赋值例子

二.  jdbcTemplate 和 Thymeleaf模板引擎  最简单输出例子 控制器代码 @GetMapping(value = "/test2") public String test2(Model model){ sql = "SELECT * FROM boy "; List queryList = jdbcTemplate.queryForList(sql); model.addAttribute("boy", queryList)

springboot + thymeleaf静态资源访问404

在使用springboot 和thtmeleaf开发时引用静态资源404,静态资源结如下: index.html文件: <!DOCTYPE html> <html xmlns:th="http://www.thymeleaf.org"> <head> <meta charset = "UFT-8" /> <title>Spring Boot Application</title> <lin