从0到1部署Tomcat和添加servlet(IDEA2024最新版详细教程)

article/2025/8/14 21:00:59

本文不仅细化了每一个步骤,实现了从0到1部署Tomcat和添加servlet。还针对IDEA2024版和以前的版本在部署上的区别,做了详细介绍,尤其是add framework support部分。与此同时,针对控制台中文乱码问题,本文也给出了详细解决方案。

目录

step1.新建一个项目

step2.此处我们选择java项目即可

step3.添加web框架

​step4 完善项目结构

step5 修改项目结构

step6 部署tomcat

step7 添加servlet类

step8  新建html页面,用于测试刚刚部署的servlet类 

step9  在web.xml中部署我们刚刚新建的servlet类 

step10 启动tomcat服务器 

step11 解决控制台中文乱码问题

step12 添加成功 


step1.新建一个项目

step2.此处我们选择java项目即可

后面会介绍使用maven部署的情况

step3.添加web框架

对于2024版的IDEA,我们选中项目并点击右键后,会发现看不到add frameworks support的选项,此时有两种解决方法:

第一种就是在设置settings中修改我们的toolbar选项,将add frameworks support添加进去(大家可以自行搜索其它博客,有详细介绍),但有的可能会发现添加进去后,我们仍然找不到这个选项

此时我们选择第二种解决方法:我们单击选中项目(不要忘记)后点击我们右上角的搜索按钮

然后输入add framework support,注意这里一定要勾选右上角的include non-project items!!!不然找不到这个选项

点击后就会出现如下页面

我们给项目添加Java EE中的web框架(因为我们打开的时候默认是Java SE,但是它没有web框架,只有JAVA EE中才有web框架)

添加好web框架后,项目结构如下

step4 完善项目结构

我们在WEB-INF下添加两个文件夹

①classes:用来存放编译后的java文件

②lib:用来存放依赖文件

 注意这两个文件夹的命名必须是这样的,包括大小写,不要自行修改

这样做的原因是因为,如果大家直接用tomcat部署过项目(不是在IDEA中),会发现它的项目框架就是这样的,我们这里和它保持一致

step5 修改项目结构

点击File--Project Structure

修改编译后的文件存放路径:

选择Modules--Paths

然后选择Use module compile output path

将路径修改为我们刚刚设置的classes文件夹的路径

点击OK修改成功后,我们可以看到classes文件夹的颜色会变成橙色

如果这里没有变,大家可以仔细检查看看是不是路径设置错了

添加依赖:选择Paths--Dependencies,点击+

然后选择添加jar包

然后找到我们tomcat的安装路径

找到tomcat\lib文件夹,选择servlet-api.jar,点击添加

这里之所以这样做是因为我们的Java EE中是没有servlet接口的,这个接口是tomcat中的,所以我们要通过tomcat来引入

添加成功后的界面如下

这里我将jsp的api也添加进来了,因为其实在后面的开发中,这些都是搭配使用的

step6 部署tomcat

我们在运行按钮的左边找到下拉框

找到Edit Configurations,点击 

点击“+”

选择Tomcat Server--Local

点击Deployment--+,添加本项目的war exploded

并且可以修改Application context

这里的Application context实际上就是我们启动服务器后默认打开的网页后的端口号后面的路径。举个例子,如果我们使用的是8080端口,那么我们的网页打开后默认显示的网址就是http://localhost:8080/Application context/,这就相当于你这个项目的根网址,后面你部署的所有页面,无论是html还是servlet的路径都是跟在这个路径后面的,这一点在下面有个注意事项中还会提到

点击Server

此页面可以修改我们的端口号等内容,不过一般我们不会去修改它

值得一提的是,这里我们可以修改On update action和On frame deactivation,默认情况下是Restart server,意思就是我们如果对项目做了修改,需要重启服务器才会更新

我们可以将其修改为Update classes and resources,即我们对项目修改的同时,页面等可以同步更新相应的内容 

修改后的界面如下 

step7 添加servlet类

我们在src下新建一个文件夹com.first

然后在其下面新建一个java类

继承servelt接口:implements Servlet

右键点击Show Context Actions

让它帮我们一键补齐框架 

分别在init,service,destroy类中添加一些输出语句,帮助我们后面的测试

(这是servlet最基本和最常用的三个类) 

step8  新建html页面,用于测试刚刚部署的servlet类 

 添加超链接,用于我们待会请求servlet类

注意这里的超链接一定要加上Application context中的内容,比如我的Application context中是test5,这里就是test5,后面的路径即你的servlet类的路径,是你自己定义的,没有特别要求,和接下来部署在web.xml中的内容保持一致即可

step9  在web.xml中部署我们刚刚新建的servlet类 

注意1:两个servlet-name保持一致即可,自定义命名

注意2:servlet-class中填写的是你想部署的servlet类的完整路径(注意是完整)

注意3:设置url-pattern,这里不用加上test5,因为这里是相对路径,默认开头就是我们的项目根路径(注意这里和我们超链接中的保持一致)

每添加一个servlet类,我们都要在这里添加一次配置

配置的代码模板都是一样的,放在下面供大家参考和直接复制

   <servlet><servlet-name>helloservlet</servlet-name><servlet-class>com.mytest.helloservlet</servlet-class></servlet><servlet-mapping><!-- mapping 表示映射 --><servlet-name>helloservlet</servlet-name><url-pattern>/helloservlet</url-pattern></servlet-mapping>

step10 启动tomcat服务器 

启动后默认跳转的页面是我们的项目根路径 

我们在后面添加/hlogin.html

即我们刚刚编写的前端页面的路径,就会出现我们刚刚写好的内容

点加超链接login ,便会请求对应的servlet

返回我们的IDEA的控制台

我们可以看到输出了我们servlet中编写的用于测试的输出信息

我们可以重复刷新对应的servlet页面

会发现执行语句会重复执行

但是初始化语句始终只执行一次,是因为初始化操作始终只执行一次 

step11 解决控制台中文乱码问题

这个地方我尝试了很多种方法,在很多地方都设置了UTF-8,还是得不到解决

最后这样操作后成功得到了解决,即添加一个系统变量

并且在IDEA--help中

点击Edit custom VM options

添加一行-Dfile.encoding=GBK 

这样做的好处是我们不用在每次配置tomcat时都重新设置一遍

因为这已经设置到我们的系统环境中了 

注意:设置完成后记得重启IDEA和tomcat,否则可能不生效

step12 添加成功 

到此,我们完整的一个servlet就添加完成了,后面大家可以根据自己的项目需求再修改响应的内容


http://www.hkcw.cn/article/PLuKixBVAJ.shtml

相关文章

Apache Tomcat RCE 稳定复现 保姆级!(CVE-2024-50379)附视频+POC

原文链接 Apache Tomcat 最新RCE 稳定复现分析 保姆级&#xff01;&#xff01;&#xff01;附复现视频POC 前言 最近爆出 Apache Tomcat条件竞争导致的RCE&#xff0c;影响范围当然是巨大的&#xff0c;公司也及时收到了相关情报&#xff0c;于是老大让我复现&#xff0c;以…

Tomcat 的使用(图文教学)

Tomcat 的使用&#xff08;图文教学&#xff09; 前言一、什么是Tomcat&#xff1f;二、Tomcat 服务器和 Servlet 版本的对应关系三、Tomcat 的使用 1、安装2、目录介绍3、如何启动4、Tomcat 的停止5、如何修改 Tomcat 的端口号6、如何部暑 web 工程到 Tomcat 中 6.1 方式一6.…

linux服务器tomcat日志中文出现问号乱码

目录 一、场景二、排查三、原因四、解决 一、场景 tomcat日志的中文出现问号乱码 乱码示例 ??[377995738417729536]????????? ac??????????????message:二、排查 1、使用locale命令查看服务器当前使用的语言包 发现只用的语言包为utf-8&#xff0…

在【IntelliJ IDEA】中配置【Tomcat】【2023版】【中文】【图文详解】

作为一款功能强大的集成开发环境&#xff08;IDE&#xff09;&#xff0c;IntelliJ IDEA为Web服务器提供了卓越的支持&#xff0c;从而极大地简化了程序员在Web开发过程中的工作流程。学习Java Web开发实质上就是掌握如何创造动态Web资源&#xff0c;这些资源在完成开发后&…

tomcat 8 所有版本安装包

https://archive.apache.org/dist/tomcat/tomcat-8/ 此时在这里点击你要下载的版本号&#xff0c;这里大版本都是 8&#xff0c;这里演示下载 8.5.57 的过程&#xff1a; 点击后页面如下&#xff0c;再点击这里的 bin/ 我使用的linux系统选择对应的版本下载

Tomcat多应用部署与静态资源路径问题全解指南

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家、CSDN平台优质创作者&#xff0c;高级开发工程师&#xff0c;数学专业&#xff0c;10年以上C/C, C#, Java等多种编程语言开发经验&#xff0c;拥有高级工程师证书&#xff1b;擅长C/C、C#等开发语言&#xff0c;熟悉Java常用开…

Tomcat 8.5 下载、安装、启动及各种问题

&#x1f970;&#x1f970;&#x1f970;来都来了&#xff0c;不妨点个关注叭&#xff01; &#x1f449;博客主页&#xff1a;欢迎各位大佬!&#x1f448; 本期内容主要介绍 Tomcat 8 的安装&#xff0c;以及可能会遇到的问题 文章目录 1. Tomcat 安装2. 可能会遇到的问题2.…

tomcat官网下载及安装

文档参考&#xff1a; (5条消息) tomcat官网下载详细步骤_成长硕果的博客-CSDN博客_tomcat怎么下载 (5条消息) Tomcat的下载及安装_InkingWT的博客-CSDN博客_tomcat下载及安装 一、Tomcat下载 1、tomcat官方网址&#xff1a;https://tomcat.apache.org 2、选择自己所需要的…

Apache Tomcat 远程代码执行漏洞(CVE-2025-24813) 超详细!

一、漏洞概述 远程代码执行漏洞(CVE-2025-24813)源于 Apache Tomcat 的反序列化机制未对用户输入进行严格验证&#xff0c;攻击者可通过构造恶意序列化对象绕过安全限制&#xff0c;处理部分 PUT 请求时&#xff0c;攻击者利用临时文件路径处理中的缺陷&#xff08;将路径分隔…

Tomcat 是什么?有什么功能和作用?为什么启动 Spring 或 Spring Boot 项目需要 Tomcat?

本文的内容是博主学习并记录关于 Tomcat 的基本知识&#xff0c;介绍了 Tomcat 为什么是一个 Web 应用服务器&#xff0c;为什么是 Servlet 容器&#xff0c;同时总结了 Tomcat 的一些功能原理&#xff0c;并详细介绍了 Tomcat 在 Spring 和SpringBoot 项目中的使用原理。本文不…

IDEA 中配置 Tomcat (详细教程)

前言 在Web项目的开发过程中&#xff0c;Tomcat 作为一款开源的Servlet容器&#xff0c;不仅能够提供稳定的运行环境&#xff0c;为开发者提供了丰富的功能支持。因此&#xff0c;本文将详细阐述在Web项目如何配置Tomcat服务器&#xff0c;包括安装检查、模块设置、路径配置、依…

tomcat 在 Linux 环境下的安装与配置教程

想部署个 Java Web 项目&#xff1f;那你八成会接触到 Tomcat。 本篇就是为 从没用过 Tomcat 的新手 写的&#xff0c;带你一步一步在 Linux 系统里把 Tomcat 装好、跑起来&#xff01; 为什么要学会用 Tomcat&#xff1f; Tomcat 是一个免费的 Java Web 服务器&#xff0c;功…

【机器学习】线性回归与逻辑回归的极致解析:从数学理论到实战案例

文章目录 1. 引言Python 代码示例 2. 线性回归2.1 线性回归的基本概念线性回归的定义数学表达式及模型假设 2.2 线性回归的工作原理最小二乘法&#xff08;Ordinary Least Squares, OLS&#xff09;梯度下降法在线性回归中的应用多元线性回归与一元线性回归的区别与联系 2.3 线…

机器学习-聚类分析算法

一、聚类分析的定义 聚类分析是一种无监督学习的统计分析方法。它的主要目的是将一个数据集中的样本&#xff08;或观测值&#xff09;按照某种相似性或距离度量划分成若干个类别&#xff08;簇&#xff09;。在聚类过程中&#xff0c;同一个簇内的样本具有较高的相似性&#…

LeetCode 热题 100 回顾

目录 一、哈希部分 1.两数之和 (简单) 2.字母异位词分组 (中等) 3.最长连续序列 (中等) 二、双指针部分 4.移动零 (简单) 5.盛最多水的容器 (中等) 6. 三数之和 (中等) 7.接雨水 (困难) 三、滑动窗口 8.无重复字符的最长子串 (中等) 9.找到字符串中…

人脸识别-特征算法

文章目录 一、LBPH算法1.基本原理2.实现步骤3.代码实现 二、Eigenfaces算法1.特点2.代码实习 三、FisherFaces算法1.算法原理2.算法特点3.代码实现 四、总结 人脸识别特征识别器是数字信息发展中的一种生物特征识别技术&#xff0c;其核心在于通过特定的算法和技术手段&#xf…

【数据结构】排序算法---计数排序(动图演示)

文章目录 1. 定义2. 算法步骤3. 动图演示4. 性质5. 算法分析6. 代码实现C语言PythonJavaGo 结语 1. 定义 计数排序又称为鸽巢原理&#xff0c;是对哈希直接定址法的变形应用。计数排序不是基于比较的排序算法&#xff0c;其核心在于将输入的数据值转化为键存储在额外开辟的数组…

【优选算法 | 哈希表】常见算法题的哈希表套路拆解

算法相关知识点可以通过点击以下链接进行学习一起加油&#xff01;双指针滑动窗口二分查找前缀和位运算模拟链表 在刷题的过程中&#xff0c;我们会频繁遇到一些“高频套路”——而哈希表正是其中最常用也最高效的工具之一。它能帮助我们在 O(1) 的时间复杂度内完成查找、插入与…

数据结构《排序》

在之前数据结构之算法复杂度章节中我们学习了复杂度相关的概念&#xff0c;这就使得懂得如何来区分算法的好坏&#xff0c;在之前C语言专题中在指针的学习时我们了解了冒泡排序&#xff0c;之后再数据结构的二叉树章节中我们又学习了堆排序&#xff0c;其实排序不止这两种&…

TSP-旅行商问题(基于动态规划或蚁群算法求解)

1. TSP问题 旅行商问题(Travelling salesman problem, TSP)是运筹学和理论计算机科学中经典的问题.具体问题如下:给定一系列城市和每对城市之间的距离,求解访问每座城市一次并回到起始城市的最短回路. 2. 动态规划 本节参考旅行商问题(动态规划) 2.1 理论介绍 假设节点数…