当前位置: 首页 > news >正文

servlet +thymeleaf渲染引擎

servlet +thymeleaf渲染引擎

一、maven坐标

<dependency><groupId>org.thymeleaf</groupId><artifactId>thymeleaf</artifactId><version>3.0.12.RELEASE</version> <!-- 使用适当的Thymeleaf版本 -->
</dependency>
<dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>4.0.1</version> <!-- 使用适当的Servlet API版本 --><scope>provided</scope>
</dependency>

二、web.xml配置

<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" ><web-app><display-name>Archetype Created Web Application</display-name><!-- 在servletContext中配置上下文参数 --><context-param><param-name>view-prefix</param-name><param-value>/WEB-INF/templates/</param-value></context-param><context-param><param-name>view-suffix</param-name><param-value>.html</param-value></context-param></web-app>

二、BaseServlet

import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.WebContext;
import org.thymeleaf.templatemode.TemplateMode;
import org.thymeleaf.templateresolver.ServletContextTemplateResolver;import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;public class ViewBaseServlet extends HttpServlet {private TemplateEngine templateEngine;@Overridepublic void init() throws ServletException {// 1.获取ServletContext对象ServletContext servletContext = this.getServletContext();// 2.创建Thymeleaf解析器对象ServletContextTemplateResolver templateResolver = new ServletContextTemplateResolver(servletContext);// 3.给解析器对象设置参数// ①HTML是默认模式,明确设置是为了代码更容易理解templateResolver.setTemplateMode(TemplateMode.HTML);// ②设置前缀String viewPrefix = servletContext.getInitParameter("view-prefix");templateResolver.setPrefix(viewPrefix);// ③设置后缀String viewSuffix = servletContext.getInitParameter("view-suffix");templateResolver.setSuffix(viewSuffix);// ④设置缓存过期时间(毫秒)templateResolver.setCacheTTLMs(60000L);// ⑤设置是否缓存templateResolver.setCacheable(true);// ⑥设置服务器端编码方式templateResolver.setCharacterEncoding("utf-8");// 4.创建模板引擎对象templateEngine = new TemplateEngine();// 5.给模板引擎对象设置模板解析器templateEngine.setTemplateResolver(templateResolver);}protected void processTemplate(String templateName, HttpServletRequest req, HttpServletResponse resp) throws IOException {// 1.设置响应体内容类型和字符集resp.setContentType("text/html;charset=UTF-8");// 2.创建WebContext对象WebContext webContext = new WebContext(req, resp, getServletContext());// 3.处理模板数据templateEngine.process(templateName, webContext, resp.getWriter());}
}

四、demoServlet

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;@WebServlet("/testservelt")
public class testservlet  extends  ViewBaseServlet{@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doGet(req,resp);}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException, IOException {HttpSession httpSession= req.getSession();List list=new ArrayList();list.add("战神");list.add("艾尔登法环");list.add("卧龙苍天陨落");list.add("霍格沃茨:遗产");httpSession.setAttribute("list",list);super.processTemplate("testservlet",req,resp);}
}

五、html页面

<!DOCTYPE html>
<!--在页面上外部导入thymeleaf-->
<html xmlns:th="http://www.thymeleaf.org">
<head><meta charset="UTF-8"><title>Title</title><style>table {border-collapse: collapse;}table, td, th {border: 1px solid black;}#gameid {margin: 12px auto;collapse: 1px;}td {text-align: center;width: 160px;}</style>
</head>
<body>
<table id="gameid"><tr><th class="w20">游戏名</th><th>操作</th></tr><tr th:if="${#lists.isEmpty(session.list)}"><td colspan="4">对不起,库存为空!</td></tr><tr th:unless="${#lists.isEmpty(session.list)}" th:each="gamename : ${session.list}"><td><a th:text="${gamename}" href="#">默认没有如果不是通过服务器启动,就显示这个文本</a></td><td><a th:text="购买" href="#">默认没有如果不是通过服务器启动,就显示这个文本</a></td></tr>
</table>
</body>
</html>

引用地址:

https://blog.csdn.net/u011863822/article/details/129747818?ops_request_misc=&request_id=&biz_id=102&utm_term=javaweb%E9%A1%B9%E7%9B%AE%E4%BD%BF%E7%94%A8thymleaf&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-0-129747818.142v96pc_search_result_base9&spm=1018.2226.3001.4187

相关文章:

servlet +thymeleaf渲染引擎

servlet thymeleaf渲染引擎 一、maven坐标 <dependency><groupId>org.thymeleaf</groupId><artifactId>thymeleaf</artifactId><version>3.0.12.RELEASE</version> <!-- 使用适当的Thymeleaf版本 --> </dependency> &…...

10分钟了解nextTick,并实现简易版本的nextTick

在 Vue.js 中&#xff0c;有一个特殊的方法 nextTick&#xff0c;它在 DOM 更新后执行一段代码&#xff0c;起到等待 DOM 绘制完成的作用。本文会详细介绍 nextTick 的原理和使用方法&#xff0c;并实现一个简易版的 nextTick&#xff0c;加深对它的理解。 一. 什么是 nextTic…...

oracle表空间对象迁移到其他表空间

oracle数据库的磁盘空间满了&#xff0c;除了简单粗暴的增加磁盘空间外&#xff0c;还可以缩小表空间的datafile&#xff0c;因为正常业务运行中&#xff0c;表数据的删除和增加&#xff0c;会造成表空间里面里面有很多空的地方。方案有很多种&#xff0c;我这里简单介绍一下&a…...

<stdlib.h>头文件: C 语言常用标准库函数详解

文章目录 引言1. <stdlib.h> 概览1.1 头文件包含 2. 内存管理函数2.1 malloc 函数2.2 calloc 函数2.3 realloc 函数2.4 free 函数 3. 随机数生成函数3.1 rand 函数3.2 srand 函数 4. 字符串转换函数4.1 atoi 函数4.2 atof 函数4.3 itoa 函数4.4 ltoa 函数4.5 ultoa函数 5…...

Qt前端技术:3.QSS字体样式

small-caps就是让这个文本中的小写字母用大写的形式写出来并且在用大写的形式表达出来后他本身的大小会变小 有绝对尺寸和相对尺寸的区别 绝对尺寸一般是cm&#xff0c;英寸之类的 相对尺寸如px之类的是由显示器的屏幕分辨率来决定的 如windows用户分辨率一般是96像素点每英…...

阿里面试官:面试了一个能力相当不错的候选人,但背调时,他前同事和领导都说他人品很差,纠结该不该要他?...

* 你好&#xff0c;我是前端队长&#xff0c;在职场&#xff0c;玩副业&#xff0c;文末有福利! 在职场中&#xff0c;背调是个躲不开的事情。不管是各行各业背调可能都存在&#xff0c;只是形式不同而已。而且现在大环境不好&#xff0c;可能对个人的要求还更高一些。 背调的主…...

如何设计树形结构

作者简介&#xff1a;大家好&#xff0c;我是smart哥&#xff0c;前中兴通讯、美团架构师&#xff0c;现某互联网公司CTO 联系qq&#xff1a;184480602&#xff0c;加我进群&#xff0c;大家一起学习&#xff0c;一起进步&#xff0c;一起对抗互联网寒冬 前置知识&#xff1a;前…...

限量25台,川崎亮相Ninja ZX-10RR冬季限量款

最近川崎发布了自家ZX-10RR的超级限量版&#xff0c;官方称之为冬季测试版&#xff0c;之前也有一些车型推出过冬季测试版&#xff0c;通常是在年底推出&#xff0c;因为这个时候北半球都是非常寒冷的冬天。 不过这台ZX-10RR冬季测试版&#xff0c;并不仅仅只是限量那么简单&am…...

【QT八股文】系列之篇章1 | QT的基础知识及事件/机制

【QT八股文】系列之篇章1 | QT的基础知识及事件/机制 前言0. 基础Qt/PyQt5介绍/关联Qt的优缺点&#xff08;为什么要用qt来做界面&#xff09;Qt 的核心机制请简要介绍一下Qt中的主窗口&#xff08;MainWindow&#xff09;类&#xff0c;它有哪些重要的函数和成员变量&#xff…...

SpringBoot 3 集成Hive 3

前提条件: 运行环境&#xff1a;Hadoop 3.* Hive 3.* MySQL 8 &#xff0c;如果还未安装相关环境&#xff0c;请参考&#xff1a;Hive 一文读懂 Centos7 安装Hadoop3 单机版本&#xff08;伪分布式版本&#xff09; SpringBoot 2 集成Hive 3 pom.xml <?xml ver…...

STL中优先队列的模拟实现与仿函数的介绍

文章目录 仿函数优先队列的模拟实现 仿函数 上回我们说到&#xff0c;优先队列的实现需要用到仿函数的特性 让我们再回到这里 这里我们发现他传入的用于比较的东西竟然是一个类模板&#xff0c;而不是我们所见到的函数 我们可以先创建一个类&#xff0c;用于比较大小 struc…...

LeetCode刷题--- 目标和

个人主页&#xff1a;元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 个人专栏 力扣递归算法题 http://t.csdnimg.cn/yUl2I 【C】 http://t.csdnimg.cn/6AbpV 数据结构与算法 http://t.csdnimg.cn/hKh2l 前言&#xff1a;这个专栏主要讲述递归递归、搜…...

【.NET Core】反射(Reflection)详解(二)

【.NET Core】反射&#xff08;Reflection&#xff09;详解&#xff08;二&#xff09; 文章目录 【.NET Core】反射&#xff08;Reflection&#xff09;详解&#xff08;二&#xff09;一、概述二、Type类2.1 Type对象表示哪些类型2.2 获取Type及其关联对象类型的方式2.3 Type…...

【错误记录/js】保存octet-stream为文件后数据错乱

目录 说在前面场景解决方式其他 说在前面 后端&#xff1a;go、gin浏览器&#xff1a;Microsoft Edge 120.0.2210.77 (正式版本) (64 位) 场景 前端通过点击按钮来下载一些文件&#xff0c;但是文件内容是一些非文件形式存储的二进制数据。 后端代码 r : gin.Default()r.Stat…...

sql_lab之sqli中的post注入

Post注入 用burpsuit抓包去做 Post第一关&#xff1a;&#xff08;gxa5&#xff09; 1.判断是否存在注入 username1or 11 #&password123&submit%E7%99%BB%E5%BD%95 有回显 username1or 12 #&password123&submit%E7%99%BB%E5%BD%95 没有回显 则证明存在sq…...

智能优化算法应用:基于白冠鸡算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于白冠鸡算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于白冠鸡算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.白冠鸡算法4.实验参数设定5.算法结果6.参考文…...

DETR++: Taming Your Multi-Scale Detection Transformer论文解读

文章目录 前言一、摘要二、引言三、相关研究四、模型方法1、Removing the Encoder方法2、Multi-Head方法3、Shifted Windows方法4、Bi-directional Feature Pyramid方法5、DETR方法 五、实验结果总结 前言 今天查看了一篇DETR论文&#xff0c;本想网络上找博客大概浏览一下&am…...

高级数据结构 <二叉搜索树>

本文已收录至《数据结构(C/C语言)》专栏&#xff01; 作者&#xff1a;ARMCSKGT 目录 前言正文二叉搜索树的概念二叉搜索树的基本功能实现二叉搜索树的基本框架插入节点删除节点查找函数中序遍历函数析构函数和销毁函数(后序遍历销毁)拷贝构造和赋值重载(前序遍历创建)其他函数…...

蚂蚁集团5大开源项目获开放原子 “2023快速成长开源项目”

12月16日&#xff0c;在开放原子开源基金会主办的“2023开放原子开发者大会”上&#xff0c;蚂蚁集团主导开源的图数据库TuGraph、时序数据库CeresDB、隐私计算框架隐语SecretFlow、前端框架OpenSumi、数据域大模型开源框架DB-GPT入选“2023快速成长开源项目”。 &#xff08;图…...

SpringBoot+JaywayJsonPath实现Json数据的DSL(按照指定节点表达式解析json获取指定数据)

场景 若依前后端分离版手把手教你本地搭建环境并运行项目&#xff1a; 若依前后端分离版手把手教你本地搭建环境并运行项目_前后端分离项目本地运行-CSDN博客 在上面搭建SpringBoot项目的基础上&#xff0c;并且在项目中引入fastjson、hutool等所需依赖后。 Jayway JsonPat…...

终极指南:如何用AntiDupl快速清理电脑中的重复图片,释放宝贵存储空间

终极指南&#xff1a;如何用AntiDupl快速清理电脑中的重复图片&#xff0c;释放宝贵存储空间 【免费下载链接】AntiDupl A program to search similar and defect pictures on the disk 项目地址: https://gitcode.com/gh_mirrors/an/AntiDupl 你是否曾因为电脑里堆积如…...

2026校招技术岗薪资大盘点:AI方向白菜价40w起,这个方向却跌破20w

上周帮学弟看offer&#xff0c;吓了一跳。某大厂给AI对齐岗的校招白菜价&#xff0c;总包42w。同一个公司&#xff0c;传统测试开发岗&#xff0c;开出了18w。差了不止一倍。这不是个例。我翻了牛客网五月最新的offer帖&#xff0c;又问了几个在阿里、字节、美团的朋友&#xf…...

基于GC1103射频前端芯片的RF4CE遥控器设计与实现

1. 项目概述&#xff1a;从一颗芯片到遥控器的“芯”变革最近在做一个智能家居遥控器的项目&#xff0c;客户对遥控距离和抗干扰能力提出了近乎苛刻的要求。传统的红外遥控方案显然无法满足&#xff0c;而市面上一些2.4GHz私有协议模块要么功耗高&#xff0c;要么开发复杂。就在…...

告别第三方工具:手把手教你打造微软官方WinPE系统维护盘

1. 为什么你需要一个官方WinPE维护盘&#xff1f; 每次电脑系统崩溃时&#xff0c;你是不是也在各大论坛疯狂搜索"如何重装系统"&#xff1f;市面上确实有很多第三方PE工具&#xff0c;比如老毛桃、微PE之类的&#xff0c;用起来确实方便。但作为一个在IT行业摸爬滚…...

指纹识别入门避坑指南:用MATLAB做仿真时,为什么你的特征点总提不准?

MATLAB指纹识别仿真&#xff1a;特征提取不准的5大技术陷阱与解决方案 指纹识别算法开发过程中&#xff0c;特征提取环节的准确性直接决定了整个系统的性能表现。许多研究者在MATLAB仿真阶段就遇到了特征点定位偏差、伪特征过多等典型问题。本文将针对这些高频痛点&#xff0c;…...

ARM GICD_CTLR寄存器详解与中断控制实践

1. GICD_CTLR寄存器概述GICD_CTLR是ARM通用中断控制器(GIC)中Distributor模块的核心控制寄存器&#xff0c;作为中断系统的"总开关"&#xff0c;它直接决定了整个中断控制器的行为模式。在GICv3/v4架构中&#xff0c;这个32位寄存器主要实现三大核心功能&#xff1a;…...

光学邻近校正(OPC)技术:原理、优化与应用

1. 光学邻近校正技术概述在半导体制造的光刻工艺中&#xff0c;光学邻近效应&#xff08;Optical Proximity Effect&#xff09;是影响图案转移精度的主要挑战之一。当特征尺寸缩小到45nm及以下节点时&#xff0c;光衍射和光阻化学反应导致的图案失真变得尤为显著。具体表现为&…...

开源首发:DocCenter — 本地 HTML 工作台,治好 AI 时代的文档散落病

Tags&#xff1a;Python aiohttp 开源项目 AI工具 前端工程 全栈 工具分享 一、痛点&#xff1a;AI 时代的文档散落病 &#xff08;对比传统文档管理 vs AI 生成文档的区别&#xff0c;说明为什么 VSCode/Notion 都不合适&#xff09; 二、技术选型&#xff1a;为什么是单 Pyth…...

微博图片智能采集器:一键构建你的专属视觉素材库

微博图片智能采集器&#xff1a;一键构建你的专属视觉素材库 【免费下载链接】weibo-image-spider 微博图片爬虫&#xff0c;极速下载、高清原图、多种命令、简单实用。 项目地址: https://gitcode.com/gh_mirrors/we/weibo-image-spider 还在为手动保存微博图片而烦恼吗…...

Perplexity + Sage期刊深度协同方案(科研人私藏版):从模糊关键词到JCR一区论文PDF的全自动链路搭建

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Perplexity Sage期刊深度协同方案&#xff08;科研人私藏版&#xff09;&#xff1a;从模糊关键词到JCR一区论文PDF的全自动链路搭建 核心协同逻辑&#xff1a;语义增强型检索闭环 Perplexity 的实时…...