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

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

本文不仅细化了每一个步骤,实现了从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就添加完成了,后面大家可以根据自己的项目需求再修改响应的内容

相关文章:

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

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

【Java从入门到放弃 之 Java程序基础】

Java程序基础 Java程序基础基本数据类型和变量数据类型变量赋值基本运算算术运算比较运算逻辑运算 Java程序基础 基本数据类型和变量 数据类型 对Java语言而言&#xff0c;有如下基本数据类型。 整数类型&#xff1a;有4种整型byte/short/int/long&#xff0c;它们占用的字…...

2024年11月26日Github流行趋势

项目名称&#xff1a;v2rayN 项目维护者&#xff1a;2dust yfdyh000 CGQAQ ShiinaRinne Lemonawa 项目介绍&#xff1a;一个支持Xray核心及其他功能的Windows和Linux图形用户界面客户端。 项目star数&#xff1a;70,383 项目fork数&#xff1a;11,602 项目名称&#xff1a;fre…...

相亲交友小程序项目介绍

一、项目背景 在当今快节奏的社会生活中&#xff0c;人们忙于工作和事业&#xff0c;社交圈子相对狭窄&#xff0c;寻找合适的恋爱对象变得愈发困难。相亲交友作为一种传统而有效的社交方式&#xff0c;在现代社会依然有着巨大的需求。我们的相亲交友项目旨在为广大单身人士提…...

使用ENSP实现默认路由

一、项目拓扑 二、项目实现 1.路由器AR1配置 进入系统试图 sys将路由器命名为R1 sysname R1关闭信息中心 undo info-center enable 进入g0/0/0接口 int g0/0/0将g0/0/0接口IP地址配置为2.2.2.1/24 ip address 2.2.2.1 24进入g0/0/1接口 int g0/0/1将g0/0/1接口IP地址配置为1.…...

CSGO游戏搬砖党如何应对上海Major

大家最近都关注major比赛了吗&#xff1f;目前已经有不少顶尖CSGO战队来到了上海&#xff0c;备战即将到来的2024上海Major赛。本次比赛正赛将于11月30日开打&#xff0c;欧洲、美洲和亚太地区的24支顶尖战队通过两周的角逐&#xff0c;包括揭幕赛、淘汰赛以及决赛三种&#xf…...

【人工智能】AutoML自动化机器学习模型构建与优化:使用Auto-sklearn与TPOT的实战指南

解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 机器学习模型的构建和优化是一个复杂且耗时的过程,涉及特征工程、模型选择、超参数调优等多个环节。AutoML(Automated Machine Learning)旨在通过自动化的方式来简化这些流程,提高开发效率并提升模型表现。Au…...

go-zero(八) 中间件的使用

go-zero 中间件 一、中间件介绍 中间件&#xff08;Middleware&#xff09;是一个在请求和响应处理之间插入的程序或者函数&#xff0c;它可以用来处理、修改或者监控 HTTP 请求和响应的各个方面。 1.中间件的核心概念 请求拦截&#xff1a;中间件能够在请求到达目标处理器之…...

vim 如何高亮/取消高亮

高亮 &#xff1a;在ESC模式下使用 shift # 取消高亮&#xff1a;在ESC模式下输入英文输入 :nohl (no highlight)...

蓝桥杯练习题

目录 1.劲舞团 2.数字诗意 3.封闭图形个数 4.回文数组 欢迎 1.劲舞团 0劲舞团 - 蓝桥云课 #include <iostream> using namespace std; int main() {int num1,M0;long long c[1000000];int cnt0;string a,b ;while(cin>>a>>b>>c[cnt])//系统自动输入…...

【设计模式】创建型模式之单例模式(饿汉式 懒汉式 Golang实现)

定义 一个类只允许创建一个对象或实例&#xff0c;而且自行实例化并向整个系统提供该实例&#xff0c;这个类就是一个单例类&#xff0c;它提供全局访问的方法。这种设计模式叫单例设计模式&#xff0c;简称单例模式。 单例模式的要点&#xff1a; 某个类只能有一个实例必须…...

使用 Docker Compose 来编排部署LMTNR项目

使用 Docker Compose 来部署一个包含 Linux、MySQL、Tomcat、Nginx 和 Redis 的完整项目的例子。假设我们要部署一个简单的 Java Web 应用&#xff0c;并且使用 Nginx 作为反向代理服务器。 项目目录结构 首先需要确保 Docker 和docker-compose已经安装并正在运行。docker --v…...

创建HTTPS网站

每天&#xff0c;我们都会听到网络上发生身份盗窃和数据侵权的案例&#xff0c;这导致用户对自己访问的网站更加怀疑。他们开始更加了解自己将个人信息放在哪里以及信任哪些类型的网站。了解如何使网站使用HTTPS变得比以往任何时候都更加重要。 解读缩略词&#xff1a;HTTP与HT…...

以3D数字人AI产品赋能教育培训人才发展,魔珐科技亮相AI+教育创新与人才发展大会

11月20日&#xff0c;北京中关村国际创新中心迎来了“AI教育创新与人才发展大会暨首届北京数字人才发展大会”的盛大启幕。此次大会汇聚了培训、教育、科技、人才领域的专家学者、行业领袖及企业代表&#xff0c;共同探讨人工智能技术在教育培训领域的革新应用与数字人才培养体…...

springboot配置https,并使用wss

学习链接 springboot如何将http转https SpringBoot配置HTTPS及开发调试 Tomcat8.5配置https和SpringBoot配置https 可借鉴的参考&#xff1a; springboot如何配置ssl支持httpsSpringBoot配置HTTPS及开发调试的操作方法springboot实现的https单向认证和双向认证(java生成证…...

Qt SQL模块概述

Qt SQL支持的数据库 要在项目中使用 Qt SQL 模块&#xff0c;需要在项目配置文件中添加下面一条设置语句&#xff1a; Qt sql在头文件或源文件中使用 Qt SQL 模块中的类&#xff0c;可以使用包含语句&#xff1a; #include <QtSql>这样会将某个 Qt SQL 模块中的所有类…...

JavaWeb后端开发知识储备2

目录 1.HttpClient 2.微信小程序开发 3.Spring Cache 4.Spring Task 4.1cron表达式 4.2入门案例 5.WebSocket协议 1.HttpClient 简单来说&#xff0c;HttpClient可以通过编码的方式在Java中发送Http请求 2.微信小程序开发 微信小程序的开发本质上是前端开发&#xff0…...

RabbitMQ原理架构解析:消息传递的核心机制

文章目录 一、RabbitMQ简介1.1、概述1.2、特性 二、RabbitMQ原理架构三、RabbitMQ应用场景3.1、简单模式3.2、工作模式3.3、发布订阅3.4、路由模式3.5 主题订阅模式 四、同类中间件对比五、RabbitMQ部署5.1、单机部署5.2、集群部署&#xff08;镜像模式&#xff09;5.3、K8s部署…...

redmi 12c 刷机

刷机历程 一个多月前网购了redmi 12c这款手机, 价格只有550,用来搞机再适合不过了, 拆快递后就开始倒腾,网上有人说需要等7天才能解锁,我绑定了账号过了几天又忍不住倒腾,最后发现这块手机不用等7天解锁成功了,开始我为了获取root权限, 刷入了很火的magisk,但是某一天仍然发现/…...

四、Python —— 列表

文章目录 一、列表的初始化1.1、直接初始化1.2、通过 append 函数初始化1.3、 通过 for 语句初始化列表长度和每个位置的数值 二、访问列表元素2.1、越界的含义 三、 使用循环语句遍历列表3.1、通过下标遍历3.2、通过 for...in... 直接遍历 四、列表的切片操作五、列表的复制六…...

AI教材编写利器!低查重AI写教材工具,快速生成30万字专业教材!

在开始编写教材之前&#xff0c;选择合适的工具真的是一个“非常纠结”的过程&#xff01;如果用常见的办公软件来写&#xff0c;功能太简单&#xff0c;框架设计和格式处理都得自己手动来搞&#xff1b;而要是尝试那些专业的编写工具&#xff0c;又会觉得操作太复杂&#xff0…...

3步解锁游戏窗口任意分辨率:SRWE终极使用指南

3步解锁游戏窗口任意分辨率&#xff1a;SRWE终极使用指南 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 你是否曾经遇到过这样的情况&#xff1a;想用游戏截图制作精美的壁纸&#xff0c;却发现游戏内置的分辨…...

别只把Docker当虚拟机!《Docker实践》没细说的5个生产环境‘骚操作’

别只把Docker当虚拟机&#xff01;5个生产环境高阶实践指南 当团队从开发测试转向生产环境时&#xff0c;Docker的使用方式往往需要质的飞跃。许多工程师在初期将容器简单视为轻量级虚拟机&#xff0c;却忽略了容器化架构真正的威力。本文将揭示那些官方文档鲜少提及&#xff0…...

Windows APK安装工具终极指南:轻松在电脑上安装Android应用

Windows APK安装工具终极指南&#xff1a;轻松在电脑上安装Android应用 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 您是否曾经希望在Windows电脑上直接安装Android…...

从2012年ACE奖看电子产业创新:Zynq、CMOS振荡器与混合域示波器的启示

1. 从一场颁奖礼&#xff0c;看电子产业的创新脉搏前几天翻看资料库&#xff0c;又看到了2012年那场UBM ACE颁奖典礼的旧闻。说实话&#xff0c;每次回顾这种历史性的行业奖项&#xff0c;感觉都像在翻阅一本电子产业的“创新年鉴”。那一年&#xff0c;Xilinx的Zynq-7000、NXP…...

手把手教你搞定Sx1262射频前端:从天线匹配到LPF滤波的完整电路设计(附PCB布局建议)

手把手教你搞定Sx1262射频前端&#xff1a;从天线匹配到LPF滤波的完整电路设计&#xff08;附PCB布局建议&#xff09; 在物联网设备开发中&#xff0c;射频前端设计往往是硬件工程师最头疼的环节之一。特别是使用Semtech的Sx1262这类LoRa芯片时&#xff0c;一个设计不当的射频…...

DDSP与神经音频合成:AI如何复刻经典合成器音色

1. 项目概述&#xff1a;当AI遇见经典合成器如果你和我一样&#xff0c;是个对复古合成器声音着迷&#xff0c;同时又对现代AI技术充满好奇的音乐制作人或开发者&#xff0c;那么最近在GitHub上出现的martinic/DrMixAISynth项目&#xff0c;绝对值得你花上一个下午的时间好好研…...

Armv8-A架构缓存维护指令详解与应用实践

1. A64系统指令中的缓存维护操作概述在Armv8-A架构中&#xff0c;缓存维护操作是确保系统内存一致性的关键机制。作为体系结构设计中最精妙的部分之一&#xff0c;缓存维护指令直接操控处理器缓存层次结构的状态&#xff0c;对系统性能、功能正确性和安全性都有着决定性影响。现…...

【Midjourney 2026审美趋势白皮书】:基于127万组V6–V7生成样本的AI视觉演化模型预测

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Midjourney 2026审美趋势白皮书导论 人工智能图像生成正从“可用”迈向“可策展”阶段。Midjourney v6.5 及其预发布的 Beta-2026 引擎已展现出对文化语境、跨媒介质感与时间性美学的深层建模能力——这…...

孤舟笔记 IO 与网络编程篇六 什么是网络四元组?它是理解TCP连接的关键

文章目录一、先说结论&#xff1a;四元组核心事实二、四元组是什么&#xff1f;三、一个端口能建立多少连接&#xff1f;四、客户端的连接上限五、NAT 和四元组六、四元组在负载均衡中的应用网络四元组 全景回答技巧与点评标准回答加分回答面试官点评个人网站面试官问"一个…...