模板引擎
模板引擎是为了使用户界面与业务数据分离而产生的,它具有丰富的功能,可以生成特定格式的页面,在Web开发中的模板引擎最后会生成一个标准的HTML文档。模板引擎的解析过程如图4.1所示,其把数据和静态模板相互匹配后,数据会替换其中的变量,最后形成HTML页面展示给用户。
2025年06月19日
模板引擎是为了使用户界面与业务数据分离而产生的,它具有丰富的功能,可以生成特定格式的页面,在Web开发中的模板引擎最后会生成一个标准的HTML文档。模板引擎的解析过程如图4.1所示,其把数据和静态模板相互匹配后,数据会替换其中的变量,最后形成HTML页面展示给用户。
2025年06月19日
package com.alatus.secrurity.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.web.SecurityFilterChain;
import static org.springframework.security.config.Customizer.withDefaults;
@Configuration
//开启Spring Security的自定义配置
@EnableWebSecurity
public class WebSecurityConfig {
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http.authorizeHttpRequests((authorize) -> authorize.anyRequest().authenticated())
.formLogin(formLogin->{
formLogin.loginPage("/login").permitAll();
//如果不配置permitAll,就会导致出现login页是初始登录页,但是这个页面资源又收到保护,导致跳转回登录页
//但是登录页又收到保护,于是又要跳转到登录页,就会形成页面递归导致报错
})
.httpBasic(withDefaults())
.logout((logout) -> logout.permitAll());
http.csrf(csrf->csrf.disable());
return http.build();
}
// @Bean
// public UserDetailsService userDetailsService() {
//// 创建基于内存的用户信息管理器
//// InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager();
//// 创建基于数据库的用户信息管理器
// DBUserDetailsManager manager = new DBUserDetailsManager();
//// 创建UserDetails对象,并设置用户名、密码、角色权限等内容
//// 因为用户都在数据库创建保存和查询,所以这里我们使用数据库中的用户信息进行登录验证
//// manager.createUser(User.withDefaultPasswordEncoder().username("admin").password("admin").roles("USER").build());
//// 这里我们的manager对象用于管理我们创建的用户信息
// return manager;
// }
}
2024年12月17日
Spring Boot是一个快速开发框架,它可以帮助开发者快速构建独立的、生产级的基于Spring的应用。Thymeleaf是一个现代的服务器端Java模板引擎,特别适合于Web应用程序。本文将详细介绍如何将Spring Boot与Thymeleaf整合,并创建一个简单的Web应用。
2024年12月17日
伪类:同一个标签,根据其不同的种状态,有不同的样式。这就叫做“伪类”。伪类用冒号来表示。
比如div是属于box类,这一点很明确,就是属于box类。但是a属于什么类?不明确。因为需要看用户点击前是什么状态,点击后是什么状态。所以,就叫做“伪类”。
伪类选择器分为两种。
(1)静态伪类
2024年12月17日
《Spring实战》第5版本书是一本经典而实用的畅销Spring学习指南。这本书就相当于是关于Spring的新华字典,第5版涵盖了Spring 5.0和Spring Boot 2.0里程碑式的更新。全书分为5个部分,共19章。第1部分(第1~5章)涵盖了构建Spring应用的基础话题。第2部分(第6~9章)讨论如何将Spring应用与其他应用进行集成。第3部分(第10~12章)探讨Spring对反应式编程提供的全新支持。第4部分(第13~15章)拆分单体应用模型,介绍Spring Cloud和微服务开发。第5部分(第16~19章)讨论如何为应用投入生产环境做准备以及如何进行部署。
2024年12月17日
文件上传操作,作为Web应用程序开发过程中的一个常见的需求,但是如何将上传到服务器的PDF文件按照页码拆分成多个单页的PDF实现单页面读取操作却是一个比较麻烦的操作,下面我们就来详细介绍一下如何在Spring Boot中实现这个需求。
2024年12月17日
之前在评论中看到有粉丝说通过Apache实现按钮级别的权限控制,其实在Spring Boot中整合Apache Shiro来实现按钮级别的权限可以通过如下的步骤来实现,下面我们就来看如何实现按钮级别的权限控制。
2024年12月17日
之前的时候,我为了演示Linux配置提交项目执行环境,简单的整理了一下springboot得相关内容,但是在实际的开发过程中,SpringBoot得使用可不仅仅就是这一点点遍历而已,在SpringBoot中推荐使用thymeleaf模板引擎,简单点评价这个模板就是语法简单,功能更强大
所以今天我们来看一下这个强大得模板引擎到底有多强大
2024年12月17日
对于ABB机器人进行远程监控,除了使用PC SDK二次开发后生成远程监控程序以外,还可以使用ABB机器人的OPC Service软件,但是使用这两种方法都需要机器人安装PC Interface系统选项,这势必造成机器人购买成本的提高,而且还不支持手机端远程访问。
除了以上两种方法以外,对于机器人控制器版本(Robotware)在6.0以上的,还可以通过Web网页对机器人进行远程监控,使用Web网页对机器人进行监控无需安装PC Interface系统选项,只需要连接上机器人控制器自带的以太网接口即可,方便快捷、节约成本,还支持手机端访问。本期,就来为大家介绍一下使用Web网页获取机器人系统信息的方法,为对ABB机器人二次开发感兴趣的小伙伴做一个入门。
2024年12月17日
Http协议是一种无状态协议所以当服务端需要记录用户的状态时,需要某种机制用于识别用户,这个机制就是