从0到1部署Tomcat和添加servlet(IDEA2024最新版详细教程)
本文不仅细化了每一个步骤实现了从0到1部署Tomcat和添加servlet。还针对IDEA2024版和以前的版本在部署上的区别做了详细介绍尤其是add framework support部分。与此同时针对控制台中文乱码问题本文也给出了详细解决方案。目录step1.新建一个项目step2.此处我们选择java项目即可step3.添加web框架?step4 完善项目结构step5 修改项目结构step6 部署tomcatstep7 添加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的安装路径找到tomcatlib文件夹选择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让它帮我们一键补齐框架分别在initservicedestroy类中添加一些输出语句帮助我们后面的测试这是servlet最基本和最常用的三个类step8 新建html页面用于测试刚刚部署的servlet类添加超链接用于我们待会请求servlet类注意这里的超链接一定要加上Application context中的内容比如我的Application context中是test5这里就是test5后面的路径即你的servlet类的路径是你自己定义的没有特别要求和接下来部署在web.xml中的内容保持一致即可step9 在web.xml中部署我们刚刚新建的servlet类注意1两个servlet-name保持一致即可自定义命名注意2servlet-class中填写的是你想部署的servlet类的完整路径注意是完整注意3设置url-pattern这里不用加上test5因为这里是相对路径默认开头就是我们的项目根路径注意这里和我们超链接中的保持一致每添加一个servlet类我们都要在这里添加一次配置配置的代码模板都是一样的放在下面供大家参考和直接复制servlet servlet-namehelloservlet/servlet-name servlet-classcom.mytest.helloservlet/servlet-class /servlet servlet-mapping!-- mapping 表示映射 -- servlet-namehelloservlet/servlet-name url-pattern/helloservlet/url-pattern /servlet-mappingstep10 启动tomcat服务器启动后默认跳转的页面是我们的项目根路径我们在后面添加/hlogin.html即我们刚刚编写的前端页面的路径就会出现我们刚刚写好的内容点加超链接login 便会请求对应的servlet返回我们的IDEA的控制台我们可以看到输出了我们servlet中编写的用于测试的输出信息我们可以重复刷新对应的servlet页面会发现执行语句会重复执行但是初始化语句始终只执行一次是因为初始化操作始终只执行一次step11 解决控制台中文乱码问题这个地方我尝试了很多种方法在很多地方都设置了UTF-8还是得不到解决最后这样操作后成功得到了解决即添加一个系统变量并且在IDEA–help中点击Edit custom VM options添加一行-Dfile.encodingGBK这样做的好处是我们不用在每次配置tomcat时都重新设置一遍因为这已经设置到我们的系统环境中了注意设置完成后记得重启IDEA和tomcat否则可能不生效step12 添加成功到此我们完整的一个servlet就添加完成了后面大家可以根据自己的项目需求再修改响应的内容

相关新闻

Tube MPC技术突破与实战指南:构建不确定性环境下的鲁棒控制系统

Tube MPC技术突破与实战指南:构建不确定性环境下的鲁棒控制系统

Tube MPC技术突破与实战指南:构建不确定性环境下的鲁棒控制系统 【免费下载链接】robust-tube-mpc An example code for robust model predictive control using tube 项目地址: https://gitcode.com/gh_mirrors/ro/robust-tube-mpc 1技术背景困境&#xff1…

2026/5/17 6:28:52 阅读更多 →
Linux网络编程:TCP的远程多线程命令执行

Linux网络编程:TCP的远程多线程命令执行

一、前文补充前面我们已经通过多线程,多进程,线程池的方式分别实现了一个我们的TCP的EchoServer,今天我们先借着之前的代码来继续学习。我们之前在进行TCP的数据的读取写入的时候,用到的函数是大家之前见过的write与read函数。其实…

2026/5/17 11:14:49 阅读更多 →
为什么你的C++23项目必须升级到C++27契约语法?——基于Linux内核模块与自动驾驶中间件的实测性能对比报告

为什么你的C++23项目必须升级到C++27契约语法?——基于Linux内核模块与自动驾驶中间件的实测性能对比报告

第一章:C27契约编程安全校验的演进动因与标准定位C27将首次正式纳入契约(Contracts)作为核心语言特性,其设计并非对C20实验性契约提案的简单延续,而是基于工业级安全关键系统对可验证程序行为的迫切需求。近年来&#…

2026/5/17 11:14:48 阅读更多 →

最新新闻

网络安全渗透测试入门:从DVWA到在线靶场的实战训练指南

网络安全渗透测试入门:从DVWA到在线靶场的实战训练指南

1. 靶场入门:为什么说它是渗透测试的“新手村”与“演武场”如果你刚接触网络安全,对“渗透测试”这个词既感到兴奋又有些迷茫,不知道从哪里开始动手,那么“靶场”就是你绕不开的第一个关键节点。你可以把它理解为一个完全合法、安…

2026/7/5 0:56:03 阅读更多 →
【大白话说Java面试题 第154题】【06_Spring篇】第14题:Spring 支持的 Bean 作用域

【大白话说Java面试题 第154题】【06_Spring篇】第14题:Spring 支持的 Bean 作用域

📌 PDF:大白话说Java面试题 — 06_Spring篇 第14题:Spring 支持的 Bean 作用域 📚 回答: 核心考点: Spring Bean 作用域是 Spring IoC 容器的核心设计之一,大厂面试不会只问"有哪几种&qu…

2026/7/5 0:56:03 阅读更多 →
跨线程大数据的免拷贝黑科技:拆解 Qt 内存管理与“非 const 性能刺客”

跨线程大数据的免拷贝黑科技:拆解 Qt 内存管理与“非 const 性能刺客”

在构建高性能系统(如局域网分布式总线、实时语音转文字终端、或本地 AI 模型中转网关)时,我们经常需要在不同的线程之间频繁流转海量的原始字节数据(如 QByteArray)。 许多初学者、甚至有经验的 C 开发者在刚接触 Qt 多…

2026/7/5 0:54:02 阅读更多 →
FModel:Unreal Engine游戏档案浏览器完整指南

FModel:Unreal Engine游戏档案浏览器完整指南

FModel:Unreal Engine游戏档案浏览器完整指南 【免费下载链接】FModel Unreal Engine Archives Explorer 项目地址: https://gitcode.com/gh_mirrors/fm/FModel FModel是一款基于C#开发的Unreal Engine档案浏览器,专为游戏开发者和逆向工程师设计…

2026/7/5 0:54:02 阅读更多 →
DockDoor终极指南:重新定义macOS窗口管理与效率革命

DockDoor终极指南:重新定义macOS窗口管理与效率革命

DockDoor终极指南:重新定义macOS窗口管理与效率革命 【免费下载链接】DockDoor Window peeking, alt-tab and other enhancements for macOS 项目地址: https://gitcode.com/gh_mirrors/do/DockDoor 你是否曾经在macOS上同时打开多个窗口,却为频繁…

2026/7/5 0:52:02 阅读更多 →
Elsevier Tracker:科研投稿状态监控的终极解决方案

Elsevier Tracker:科研投稿状态监控的终极解决方案

Elsevier Tracker:科研投稿状态监控的终极解决方案 【免费下载链接】Elsevier-Tracker 项目地址: https://gitcode.com/gh_mirrors/el/Elsevier-Tracker 还在为每天反复登录Elsevier系统查看论文审稿状态而烦恼吗?想象一下,当你提交了…

2026/7/5 0:52:02 阅读更多 →

日新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/5 0:03:34 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/5 0:03:34 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/5 0:07:38 阅读更多 →

月新闻