IDEA2025 搭建Web并部署到Tomcat运行Servlet+Thymeleaf

一、创建maven项目

二、pom.xml文件依赖包

XML 复制代码
  <dependencies>
        <!-- JUnit依赖 -->
        <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-api</artifactId>
                <version>5.9.2</version>
                <scope>test</scope>
        </dependency>
        <!-- Servlet依赖 -->
        <dependency>
            <groupId>jakarta.servlet</groupId>
            <artifactId>jakarta.servlet-api</artifactId>
            <version>6.0.0</version>
        </dependency>
        <!-- Thymeleaf依赖 -->
        <dependency>
            <groupId>org.thymeleaf</groupId>
            <artifactId>thymeleaf</artifactId>
            <version>3.1.2.RELEASE</version>
        </dependency>

        <!-- lombok依赖 -->
        <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.18.32</version>
        </dependency>
    </dependencies>

三、选择File | Project Structrue | Facets | + 添加Web

选择模块

如图所示:web

四、编写HMTL页面和Servlet

(1) my.html

html 复制代码
<!DOCTYPE html>
<!--导入thymeleaf命名空间-->
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>首页</title>
</head>
<body>
 <div th:text="访问动态Thymeleaf页面">欢迎访问首页</div>
  <!-- 请求域取值-->
 <div th:text="${name}">张三</div>
</body>
</html>

(2) MyServlet.java 类 (CustomTemplateEngine类 略)

java 复制代码
package org.hlx.servlet;

import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.hlx.thymeleaf.CustomTemplateEngine;
import org.thymeleaf.context.Context;

import java.io.IOException;

@WebServlet("/my")
public class MyServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("doGet()方法执行...");
        // 获取模板引擎对象
        CustomTemplateEngine templateEngine = CustomTemplateEngine.getInstance(req);
        // 创建数据模型,即将要传递给Thymeleaf的数据
        req.setAttribute("name", "张三");

        // 处理请求并响应结果
        templateEngine.processTemplate("my", req, resp);
    }

   protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req, resp);
    }
}

五、配置Tomcat10

(1)找到Edit Configurations...

(2)Tomcat Server | Local

(3) 选择已安装好的Tomcat10.1.41

(4) File | Project Structrue | Artifacts| + 添加Web部署

(5)可以修改部署文件名: Application context:

(6) 配置Tomcat VM options: 出现乱码

-Dfile.encoding=UTF-8

(7)配置Tomcat 运行时的更新方式

六、运行

相关推荐
Seven972 小时前
剑指offer-53、表达数值的字符串
java
木楚2 小时前
在idea中构建传统ssm框架的步骤和方式
java·ide·intellij-idea
董世昌412 小时前
JavaScript 中 undefined 和 not defined 的区别
java·服务器·javascript
Lisonseekpan2 小时前
Kafka、ActiveMQ、RabbitMQ、RocketMQ对比
java·后端·kafka·rabbitmq·rocketmq·activemq
我是华为OD~HR~栗栗呀2 小时前
(华为od)21届-Python面经
java·前端·c++·python·华为od·华为·面试
夕阳下的一片树叶9132 小时前
后端java遇到的问题
java·开发语言
CodeAmaz2 小时前
RocketMQ整体工作流程_详解
java·rocketmq·rocketmq整体流程
刘一说2 小时前
ES6+核心特性全面浅析
java·前端·es6
大学生资源网2 小时前
基于springboot的农村综合风貌展示平台设计与实现(源码+文档)
java·数据库·spring boot·后端·毕业设计·源码·springboot