IDEA创建简单web(servlet)项目(server为tomcat)

引言

鉴于网上很少有关于IDEA开发servlet项目的教程(24版idea,并且servlet技术十分复古,很少有人用到,能够理解,该文章旨在为在校的学生提供一个参考,项目技术简单)本人在此总结从头开始到项目落地的教程。

IDEA配置

由于servlet技术过于老旧,在24版或者比较新的版本中是无法直接创建一个web项目的,于是我们需要做好前期的配置工作

  1. 添加框架支持:
    我们打开idea创建一个java项目,双击键盘shift键,弹出搜索框,如下:
    在这里插入图片描述

直接输入add,可以发现有:
在这里插入图片描述
点击添加框架支持,选择web applicat:
在这里插入图片描述
确定后,我们再来配置路径

  1. 配置路径
    我们先在web目录下创建两个目录:classes和lib
    在这里插入图片描述
    然后点击右上角四条横线位置:
    在这里插入图片描述
    选择项目结构(projec structure)
    进入后我们选择modules-paths
    在这里插入图片描述
    在下方配置我们的output path:
    在这里插入图片描述
    分别选择我们刚刚创建的web下的两个新目录,然后去到依赖(dependencies),使用servlet技术我们需要导入servlet1的api:

    点击+号,选择第一个导入jar包,选择你所下载好的tomcat文件,进入lib目录:
    在这里插入图片描述
    选择servlet-api:
    在这里插入图片描述

然后再点击+号,选择第二项library:
在这里插入图片描述

导入我们的服务器:
在这里插入图片描述

两个打勾后点击ok,正常情况下你会发现web目录下你所创建的两个新的目录变了颜色:
在这里插入图片描述

到这一步我们的项目环境以及搭建好了,但是当创建文件时右键会发现没有servlet这个选项,这是因为该技术以及过于老旧,idea没有将它放在默认的文件创建中,这时我们需要去到右上角设置:
在这里插入图片描述

editor中选择file and code templates,在other中选择web中的java code templates,第一个和第二个的servlet模板区别在与servlet版本的区别,在4.0前,servlet存在于javax中,4.0后的版本甲骨文创造了一个新的类Jakarta,读者可以根据自己的servlet版本来选择:
在这里插入图片描述
选择好后复制模板代码,来到files中,点击左上角+号,创建一个名为Servlet名的模板,将复制的模板代码粘贴到框中在这里插入图片描述
点击apply,这样,我们就可以在右键时创建servlet的文件了:

在这里插入图片描述
在这里插入图片描述

创建时会出现这个,也就是我上面所说的版本问题,javax或者Jakarta

3.Tomcat配置
回到我们创建的项目后,点击右上角:

在这里插入图片描述
会发现我们目前还没有服务器,我们点击edit configuration:
在这里插入图片描述
点击add new,选择tomcat server(注意不是tom ee server):
在这里插入图片描述

我们创建一个本地服务器,选择local:
在这里插入图片描述
下面的warning直接点击fix即可,然后apply-ok

如果你做到了这里,恭喜你,你已经完成我们框架的搭建,接下来根据你的项目需求完成代码运行即可。

提醒

值得注意的是,由于tomcat需要与servlet版本搭配,不然项目是跑不出来的,这里是官网的版本搭配链接:Apache Tomcat® - Which Version Do I Want?

在这里插入图片描述

可以发现servlet4.0最低版本的tomcat是9.0.x,读者这方面需要注意下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/852282.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

哪个牌子的儿童护眼灯好?五款平价护眼台灯推荐

护眼台灯在近年来成为家长和长时间使用电子设备人群关注的家电/学生产品。对于家中有孩子或经常面对电子屏幕的人士来说,很多人可能已经对这类产品有所了解并进行了购买。然而,部分家长对护眼台灯的认识还不够深入,因此尚未为孩子选择一款合适…

无公网IP与服务器完成企业微信网页应用开发远程调试详细流程

文章目录 前言1. Windows安装Cpolar2. 创建Cpolar域名3. 创建企业微信应用4. 定义回调本地接口5. 回调和可信域名接口校验6. 设置固定Cpolar域名7. 使用固定域名校验 前言 本文主要介绍如何在企业微信开发者中心通过使用内网穿透工具提供的公网域名成功验证回调本地接口服务! …

postman教程-21-Newman运行集合生成测试报告

上一小节我们Postman Newman的安装方法,本小节我们讲解一下Postman Newman的具体使用方法。 使用Newman运行集合 1、导出Postman集合: 在Postman中,选择你想要运行的集合,然后点击“导出”按钮,选择导出为“Collect…

【CS.PL】Lua 编程之道: 控制结构 - 进度24%

3 初级阶段 —— 控制结构 文章目录 3 初级阶段 —— 控制结构3.1 条件语句:if、else、elseif3.2 循环语句:for、while、repeat-until3.2.1 输出所有的命令行参数3.2.2 while.lua3.2.3 repeat.lua及其作用域 🔥3.2.4 for.lua (For Statement)…

.gitignore文件使用

.gitignore简介 .gitignore文件是Git 版本控制系统中的一个重要配置文件,它用于指定哪些文件或目录应该被Git忽略,即不被纳入版本控制中。 .gitignore编写规则 在文件中添加要忽略的文件和目录的模式。每一行表示一个模式。 使用通配符来匹配多个文件或目…

eclipse 老的s2sh(Struts2+Spring+Hibernate) 项目 用import导入直接导致死机(CPU100%)的解决

1、下载Apache Tomcat - Apache Tomcat 8 Software Downloads 图中是8.5.100的版本,下面的设置用的是另一个版本的,其实是一样。 2、先将Server配好,然后再进行导入操作。 2、选择jdk 当然,这里也可以直接“Download and instal…

python调用web_service

安装依赖 pip install suds示例代码 from suds.client import Client from suds.plugin import MessagePlugin import logging# 启用日志记录以便调试 logging.basicConfig(levellogging.INFO) logging.getLogger(suds.transport).setLevel(logging.DEBUG)class LogPlugin(Me…

ARM功耗管理框架之SCP

安全之安全(security)博客目录导读 目录 一、功耗管理框架中的SCP 二、SCP的示例 三、SCP固件 四、SCP启动流程 五、SCP的memory map 六、SCP与AP的通信 思考:功耗管理框架?SCP?PPU?LPI?之间的关系?如何配合? 一、功耗管理框架中的SCP 二、SCP的示例

【Python】中的X[:,0]、X[0,:]、X[:,:,0]、X[:,:,1]、X[:,m:n]、X[:,:,m:n]和X[: : -1]

Python中 x[m,n]是通过numpy库引用数组或矩阵中的某一段数据集的一种写法,m代表第m维,n代表m维中取第几段特征数据。 通常用法: x[:,n]或者x[n,:] X[:,0]表示对一个二维数组,取该二维数组第一维中的所有数据,第二维中…

使用本地数据对transformers模型进行微调训练

模型 transformers模型是使用比较多的模型,奈何各个都是体积大,找了一个使用人多不是很大的模型进行训练。 需要魔法 bert-base-uncased模型仓库地址 huggingface下的所有仓库都是git的,也就意味着你可以使用 git clone 可以下载仓库内所有的…

跟着AI学AI_07张量、数组、矩阵

说明这三个概念不是一个范畴的东西,但是很容易混淆,因此放到一起进行说明。 张量(Tensor) 张量是一个多维数组的通用概念,用于表示具有任意维度的数值数据。在数学和计算机科学中,张量是广泛用于表示数据的…

震坤行坤合供应链荣获“2024 LOG低碳供应链物流-最具影响力品牌商”

震坤行坤合供应链荣获“2024 LOG低碳供应链物流-最具影响力品牌商” 近日,罗戈网在青岛举办了2024第三届低碳供应链&物流创新发展高峰论坛,此次峰会聚焦“物流碳中和,可持续供应链”这一核心议题,汇聚国内外双碳践行企业、低碳…

【嵌入式系统实践】实验四综合实验部分代码

由于综合实验未给出一个固定的思路或者目标,这里仅写出部分内容,以便于期末复习背诵手写代码用。 自己写的func.h和func.c涵盖了期末所考手写代码部分,背诵过来就挂不了科。 // functions.h #ifndef FUNCTIONS_H #define FUNCTIONS_Hextern …

D 25章 进程的终止

D 25章 进程的终止 440 25.1 进程的终止:_exit()和exit() 440 1. _exit(int status), status 定义了终止状态,父进程可调用 wait 获取。仅低8位可用, 调用 _exit() 总是成功的。 2.程序一般不会调用 _exit(), 而是…

C++:调整数组顺序使奇数位于偶数前面【面试】

在C&#xff0c;如果要调整数组顺序使所有奇数位于偶数前面&#xff0c;这里提供一种简单且常用的方法&#xff1a;双指针技术。这种方法不需要额外的空间&#xff0c;并且时间复杂度为O(n)。 以下是使用双指针技术实现的示例代码&#xff1a; #include <iostream> #in…

Release和Debug的区别?Release有什么好处?【面试】

Release和Debug的区别&#xff1a; 优化&#xff1a;Debug版本通常不进行优化&#xff0c;以便更容易调试&#xff1b;Release版本则经过高度优化&#xff0c;以提高性能。调试信息&#xff1a;Debug版本包含详尽的调试信息&#xff0c;如符号信息和源代码映射&#xff1b;Rel…

对iOS开发中的链接器ld64和-ld_classic的深入理解

哈喽&#xff0c;大家好&#xff0c;随着iOS应用程序的开发日益增多&#xff0c;开发者们经常会在Xcode中遇到一些特定的编译器和链接器选项。其中&#xff0c;ld64和-ld_classic是两个常见的概念。这一期将深入介绍这两个概念&#xff0c;以帮助iOS开发者更好地理解它们的作用…

什么是全局对象和全局变量

在JavaScript中&#xff0c;全局对象和全局变量是两个重要的概念&#xff0c;它们与代码的执行环境和作用域紧密相关。 全局对象 全局对象&#xff08;Global Object&#xff09;是在代码的任何地方都能访问到的对象。在浏览器环境中&#xff0c;全局对象通常是window对象&am…

公司面试题总结(五)

25.谈一谈箭头函数与普通函数的区别&#xff0c;箭头函数主要解决什么问题&#xff1f; 箭头函数与普通函数的区别&#xff1a; ⚫ 语法简洁性&#xff1a; ◼ 箭头函数使用>符号定义&#xff0c;省略了 function 关键字&#xff0c;使得语法更为紧凑。 ◼ 对于单行函…

【Linux系统编程】进程间通信

进程间通信 1.概念 进程间通信&#xff08;IPC&#xff0c;InterProcess Communication)是指在不同进程之间传播或交换信息。 优点&#xff1a; 数据传输&#xff1a;一个进程需要将它的数据发送给另一个进程资源共享&#xff1a;多个进程之间共享同样的资源。通知事件&…