自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (4)
  • 收藏
  • 关注

原创 可能是最全的Thymeleaf参考手册:终极篇,全,全,全!!!

Thymeleaf是一个现代的、服务器端的Java模板引擎,适用于Web和独立环境。其主要目标是为开发工作流程带来异常优雅的自然模板——可以再浏览器中正确显示HTML,也可以作为静态原型,使开发团队协作更通畅。目前Thymeleaf已于Spring Framework集成,相信凭借Spring Framework的出色特性,能使Thymeleaf成为现代HTML5 JVM Web开发的首选。Thymeleaf全部的参考手册如下:可能是最全的Thymeleaf参考手册(一):配置 可能是最全的T

2020-06-11 17:05:13 1502

原创 因为一句代码,老大差点拿我祭旗!Spring Security authorizeRequests 顺序问题不容忽视

​今天,老大给我布置了一个非常简单的任务,真的非常简单:开发一个个人基本信息展示页面,展示个人的一些基本信息,并且权限配置要配置为无需登录即可访问。感谢大哥照顾我,给我这么简单的任务,那就开干吧。一顿操作猛如虎,页面写完后,到Spring Security的配置方面,不就是无权限认证嘛,还不是手到擒来。http..authorizeRequests().antMatchers("/user/profile/**").permitAll()这么简单的东西,没有必要再走各种测试流程...

2020-06-25 18:40:56 6195 3

原创 史上最简单的Spring Security教程(五):成功登录SuccessHandler高级用法

在了解了如何简单的配置成功登录后调转的页面、如何始终指定系统跳转到某一地址后,我们可能会庆幸,原来如此简单。是的,确实如此简单,Spring Security框架协助我们完成了大部分的工作,而我们只需稍微配置,即可使用。但是,业务场景,又何尝会如此简单。举个例子,我们在登录某个网站之后,微信、短信、邮箱可能会接受到一条这样的信息/邮件。还有,比如这样的。甚至于,我要记录每一次的登录信息到数据库、到日志文件等等,方便后续做审计、分析。其实,Spring Security框架也...

2020-06-25 18:39:18 7996

原创 史上最简单的Spring Security教程(四):成功登录页面

配置大多数情况下,我们在访问一个系统时,会直接访问我们收藏的某个页面,或者首页,又或者是访问根路径,成功登录系统后,一般情况下,会重定向到这些页面。如果并没有明确的目的指向,或者说我们想要让系统在登录成功后,一直指向某个页面怎么办?其实,这很简单,很显然,Spring Security 也考虑到了这一点,在原配置基础上,添加一项defaultSuccessUrl配置即可。http.formLogin().loginPage("/login").defaultSuccessUrl...

2020-06-24 08:56:49 5669

原创 史上最简单的Spring Security教程(三):不拦截系统资源

前面我们自定义了登录页,当然了,系统也有一些其它的页面,但是,这些页面犹如没有“化妆”一样,非常不美观。既然如此,我们就使用Bootstrap、font-awesome等前端技术,给页面“化化妆”。...<link type="text/css" rel="stylesheet" th:href="@{/css/bootstrap.min.css}" href="../static/css/bootstrap.min.css"><link type="text/css"...

2020-06-22 09:58:24 5335 1

原创 史上最简单的Spring Security教程(二):自定义登录页

用法Spring Security框架默认的登录页如下图所示。这个界面元素太少,况且不易去调整,也不满足日常的场景。所以,大多数情况下,我们需要自定义登录页。其实,自定义登录页也非常简单,只需要一个登录页面、一个Controller、Spring Security配置稍微调整下,就可以了。登录页面我们采用Spring Security框架默认的用户名、密码参数名、filterProcessUrl等。<form action="/login" met...

2020-06-22 09:56:14 4286 3

原创 史上最简单的Spring Security教程(一):一分钟搭建SpringSecurity

说起来Web应用安全,通用的方案无非 Spring Security 和 Apache Shiro。这两者我们在此不做比较,用Spring Security多,无非是因为 Spring 框架的“裙带关系”,当然了,也有一些其它原因,如CAS集成、OAuth2集成等等,都有比较成熟的集成框架方案。Spring Security框架,说实话,比较复杂,好多人一开始不太理解,只会照搬网上的答案,遇到问题解决不了。这是非常不好的习惯,技术方案一定是自己能解决的,或者说比较容易找到解决方案的,不然生产环境出...

2020-06-20 16:00:45 6285 7

原创 Redis生成分布式唯一流水号实践

在工作中,想必都接触过这样一个场景:生成具有一定规则的编码。比如,合同编号。要求格式为<HT前缀><4位年><2位月><2位类型><N位流水号>。前面都好说,只有这个流水号,很容易就出现重复、跨越等问题。如何解决呢?其实办法也有好多种,能想到的最多就是加锁。无论是synchronized关键字、还是Lock锁、Zookeeper锁、Redis锁等,都是通过阻塞其它请求,即同步阻塞模式,一次只处理一个流水号生成请求,以达到唯一性目的。那么有没有同步非阻塞模式呢?答案是有的,且使用起来也比较简单

2020-06-17 14:12:52 4554

原创 Spring Security Oauth2 SSO单点登录配置及原理深度剖析

​单点登录(SingleSignOn,SSO),就是通过用户的一次性鉴别登录。当用户在身份认证服务器上登录一次以后,即可获得访问单点登录系统中其他关联系统和应用软件的权限,同时这种实现是不需要管理员对用户的登录状态或其他信息进行修改的,这意味着在多个应用系统中,用户只需一次登录就可以访问所有相互信任的应用系统。随着企业各系统越来越多,如办公自动化(OA)系统,财务管理系统,档案管理系统,信息查询系统等,登录问题就变得愈发重要。要记录那么多的用户名和密码,实在不是一件容易的事儿。而为了便于记忆,...

2020-06-15 09:20:02 13576 12

原创 可能是最全的Thymeleaf参考手册(十六):模板解耦逻辑

解耦逻辑:概念到目前为止,模板都是以正常的方式完成,逻辑以属性的形式插入模板中。但是Thymeleaf还允许我们将模板标记与其逻辑完全分离,从而允许在HTML和XML模板模式下创建完全无逻辑的标记模板。主要思想是模板逻辑将在单独的逻辑文件中定义(更确切地说是逻辑资源,因为它不必是file)。默认情况下,该逻辑资源将是与模板文件位于同一位置(例如,文件夹)的附加文件,其名称相同,但扩展名为.th.xml:/templates+->/home.html+->/...

2020-06-10 10:12:48 416

原创 可能是最全的Thymeleaf参考手册(十五):模板缓存

Thymeleaf的工作要归功于一组解析器(用于标记和文本),该解析器将模板解析为事件序列(打开标签,文本,关闭标签,注释等)和一系列处理器(每种需要一种行为)应用–修改模板解析的事件序列,以便通过将原始模板与我们的数据结合来创建我们期望的结果。默认情况下,它还包括存储已解析模板的缓存;在处理模板文件之前读取和解析模板文件所导致的事件顺序。在Web应用程序中工作时,此功能特别有用,它基于以下概念: 输入/输出几乎始终是所有应用程序中最慢的部分。相比之下,内存中处理非常快。 克隆现有...

2020-06-10 10:10:30 575

原创 可能是最全的Thymeleaf参考手册(十四):其它配置

模板解析器在web项目中,我们使用ITemplateResolver的实现ServletContextTemplateResolver,用以从Servlet上下文中获取模板作为资源。除了通过实现ITemplateResolver来创建模板解析器之外,还包括一下四种实现: org.thymeleaf.templateresolver.ClassLoaderTemplateResolver,它将模板解析为类加载器资源,例如: return Thread.current...

2020-06-10 10:08:53 1307

原创 可能是最全的Thymeleaf参考手册(十三):文本模板模式

文字语法在Thymeleaf的三种模板模式被认为是文字:TEXT,JAVASCRIPT和CSS。这将它们与标记模板模式区分开:HTML和XML。文本模板模式和标记模式之间的主要区别在于,在文本模板中,没有标签可以插入属性形式的逻辑,因此我们必须依靠其他机制。这些机制的第一个也是最基本的是内联的,我们已经在上一章中进行了详细介绍。内联语法是在文本模板模式下输出表达式结果的最简单方法,因此,这是文本电子邮件完美有效的模板。Dear [(${name})],​ Please fi...

2020-06-10 10:05:09 2002

原创 可能是最全的Thymeleaf参考手册(十二):内联

表达式内联尽管标准方言允许我们使用标记属性来执行几乎所有操作,但是在某些情况下,我们更喜欢直接将表达式写到HTML文本中。例如,我们可能更喜欢这样编写:<p>Hello, [[${session.user.name}]]!</p>以代替:<p>Hello, <span th:text="${session.user.name}">Sebastian</span>!</p>在Thymeleaf中,[[....

2020-06-05 09:37:58 610 1

原创 可能是最全的Thymeleaf参考手册(十一):注释和块

Thymeleaf模板中的任何位置都可以使用标准的HTML / XML注释<!-- ... -->。这些注释中的所有内容均不会被Thymeleaf处理,并将一字不差的复制到结果页面:<!-- User info follows --><div th:text="${...}"> ...</div>Thymeleaf解析器级注释块解析器级别的注释块是在Thymeleaf对其进行解析时,将从模板中简单删除的代码。他们...

2020-06-04 11:35:27 418

原创 可能是最全的Thymeleaf参考手册(十):优先级

当出现多个th:*属性时,会发生什么样的情况?<ul> <li th:each="item : ${items}" th:text="${item.description}">Item description here...</li></ul>我们希望th:each属性在之前执行,th:text以便获得所需的结果,但是考虑到HTML / XML标准没有给标记中的属性写入顺序赋予任何含义,因此必须在属性本身中建立优先级机制,...

2020-06-02 17:32:29 300

原创 可能是最全的Thymeleaf参考手册(九):局部变量

​Thymeleaf将局部变量称为为模板的特定片段定义的变量,并且仅可用于该片段内部的评估。我们已经看到的示例是商品产品列表页面中的迭代变量:<tr th:each="prod : ${prods}"> ...</tr>prod变量仅在<tr>标记范围内可用。特别的: th:*标签可用于在该标签中执行的所有其它属性,该属性的优先级低于th:each(这意味着它们将在th:each之后执行)。 它将可用于&...

2020-06-01 16:53:37 482

Eclipse svn插件1.8版本

Eclipse svn插件1.8版本,对应小乌龟1.6版本

2017-06-02

Navicat Mysql版11.0.10

Navicat Mysql版11.0.10

2017-06-02

PLSQL Developer 12.0.1简体中文绿色版32位

PLSQL Developer 12.0.1简体中文绿色版32位,含注册码

2017-06-02

java中如何使用过滤器过滤指定格式的文件

使用java过滤器,过滤掉目录文件和非.txt文件,并输出结果。

2011-10-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除