idea2023-快速搭建一个本地tomcat的javaWeb项目(从0到1保姆教学)

前言

如何在新版idea中搭建一个javaWeb项目,并且应用在物理的tomcat中,本文将进行从零到一,完成搭建步骤,以及相关注意事项的讲解。

为什么需要配置tomcat?

我们开发的javaWeb项目,最后都需要打包部署到真正的物理tomcat上发布运行;在开发阶段,我们想要测试javaWeb项目,除了使用maven的服务器插件(tomcat),剩下就需要我们配置本地的物理tomcat来运行我们的程序,因此如何进行配置tomcat时尤为关键的。

idea的不同版本区别?

不同的idea版本,创建一个javaWeb项目是略有不同的,在高版本中无法直接创建一个javaWeb项目,因此我会以idea2023版本为例,介绍如果创建一个JavaWeb项目,并运行在物理的tomcat服务器。

搭建步骤 

第一步:创建一个新的java项目(普通的java项目即可)

初始项目结构如下:

第二步:将Java项目配置成JavaWeb项目

首先点击File(文件),找到Project Structure(项目结构)

第三步:配置web项目

 配置Project:

Java的版本只要不报红,一般不会出错

配置Modules:

点击左上角“+”号 ,选择最下方的Web模块

 此时出现警告信息,要我们创建Artifact

直接点击Create Artifact,会跳转到如下界面,并创建一个Artifact,这个暂时不管,我们一会配置。

 回到Modules中,点击javaweb_csdn这个项目名,出现如下:

注意,如果此时的项目结构应该是:

如果没有出现web目录,记得在右下角的Apply,将刚才创建web模块的操作保存一下,这样就会出现web目录了。

需要我们一次配置Sources、Paths、Dependencies

配置Sources:

右键点击WEB-INF目录,新建两个目录classes和lib目录:

将clsaaes,添加为字节码编译后的存放目录:

首先点击一下classes目录,然后点击右上角的Excluded

颜色改变

如果配置成功,右边会有这样的关系罗列

配置Paths:

实际上就是配置编译后字节码存放位置

 配置Dependencies:

点击左上角“+”号

选第一个,找到我们刚才设置的lib目录的位置,然后点击,会出现如下提示,点击Jar Directory,表示将我们的jar包存放在lib目录下,就能被web项目识别:

 此时点击Artifact,回到刚才的待处理目录

注意:这一步的前提是我们已经在本地安装了一个tomcat服务器,如果没有,请先安装一个,这里不赘述安装tomcat的步骤了

 这里表示我们项目编译完成后存放的位置,设置为本地tomcat的WebApps下,一般情况下,我们会创建一个与项目同名的文件夹来保存我们项目的源码

有点webapps目录可以创建文件夹,如我创建了一个javaweb_csdn文件夹,来保存编译之后的项目

以上初始化javaWeb项目的步骤基本完成,接下来需要配置tomcat

第四步:配置tomcat

点击Current File下的Edit Configurations...

点击“+”号,找到Tomcat Server   Local

我使用的是tomcat9:

下面出现警告,点击Fix,会跳转到Deployment

 会将我们刚才配置的Artifact加入tomcat中,往下拉:

找到Application context,将这里的路径修改一下,变得和我们刚才在webapps目录下创建的文件夹同名(实际上就是配置项目名,也称为项目路径)

如,我创建的文件夹名为javaweb_csdn

此时回到Server,可以在第一个箭头处,设置默认打开的浏览器(我这里是谷歌浏览器)

在第二个箭头处会出现我们刚才配置的项目名(路径),要与webapps目录下的文件夹名保持一致

点击Apply,然后点击OK

测试

此时一个javaweb项目的基本架构已经搭建完成,此时如果我们想要使用servlet等进行测试,需要手动导入jar包到lib目录中,如下:

导入servlet+jsp的依赖包

导入tomcat依赖包

如果没有向右的箭头,点击右键添加为库(add as library)

 在web目录下创建一个默认首页(默认首页以index为名的文件)

 使用el表达式,从servlet取到值

<%--Created by IntelliJ IDEA.User: AdministratorDate: 2024/9/30Time: 9:49To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html><head><title>$Title$</title></head><bodyi>${msg}</bodyi>
</html>

在src中创建HelloServlet类 

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.getSession().setAttribute("msg","zhangsan");resp.sendRedirect("index.jsp");}@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doPost(req, resp);}
}

运行tomcat,启动可能会有点慢

此时会默认打开我们刚才在tomcat中配置的默认浏览器:

此时是空页面,因为我们确实没有在index.jsp中写前端代码

现在去访问我们设置的servlet路径

http://localhost:8080/javaweb_csdn/hello

此时会出现内容:执行流程是先在servlet中为msg设置值,然后跳转到index.jsp展示。

总结

以上是创建一个原生的javaweb项目搭配tomcat启动的创建,配置与启动。

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

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

相关文章

C++基础---类和对象(上)

1.类的定义 C程序设计允许程序员使用类&#xff08;class&#xff09;定义特定程序中的数据类型。这些数据类型的实例被称为对象 &#xff0c;这些实例可以包含程序员定义的成员变量、常量、成员函数&#xff0c;以及重载的运算符。语法上&#xff0c;类似C中结构体&#xff0…

【网络篇】计算机网络基础知识详述(1)(笔记)

目录 一、因特网基础认识 1. 初识因特网 2. 网络服务 3. 网络协议 4. 网络边缘 5. 物理链路 &#xff08;1&#xff09;双绞铜线 &#xff08;2&#xff09;同轴电缆 &#xff08;3&#xff09;光纤 6. 网络的网络&#xff08;因特网&#xff09; 二、网络核心 1. …

unity_Occlusion_Culling遮挡剔除学习

unity_Occlusion_Culling遮挡剔除学习 文档&#xff1a; https://docs.unity.cn/cn/2019.4/Manual/occlusion-culling-getting-started.html没彻底搞明白&#xff0c;但是会用&#xff0c;虽然也不熟练 设置遮挡剔除 打开遮挡剔除面板 设置场景物体。设置为静态 设置场景 烘…

机器学习笔记(李宏毅老师2021/2022课程)【更新中】

目录 前言 课程预览 第一讲 机器学习基本概念 前言 本文主要记录在听李宏毅老师的课时对应做的课堂笔记 课程&#xff1a; (强推)李宏毅2021/2022春机器学习课程_哔哩哔哩_bilibili 课程预览 机器学习找函数 &#xff08;找一个人类写不出来的复杂函数&#xff09; 课程侧…

如何测试网络质量?

如何测试网络质量&#xff1f; 通过百度网盘分享的文件&#xff1a;winMTR 链接&#xff1a;https://pan.baidu.com/s/1Zfw4jciNhng35nfwBlF75Q 提取码&#xff1a;6622 –来自百度网盘超级会员V2的分享 下载WINMTR工具&#xff0c;在启动处输入www.baidu.com 判断方法&…

借助spring的IOC能力消除条件判断

shigen坚持更新文章的博客写手&#xff0c;记录成长&#xff0c;分享认知&#xff0c;留住感动。个人IP&#xff1a;shigen 在前边讲到了如何借助HashMap、枚举类、switch-case消除条件判断&#xff0c;这里讲到我们最常见的用spring的IOC能力来消除代码中的逻辑判断。其实大部…

2.点位管理开发(续)及设计思路——帝可得后台管理系统

目录 前言一、页面原型二、修改1、页面展示2、新增 3 、总结思路 前言 提示&#xff1a;本篇继续点位管理的改造 一、页面原型 页面展示新增 二、修改 1、页面展示 页面修改&#xff1a;修改标签换行、顺序顺序、地址过长时换行问题&#xff1b; <el-table v-loading…

JVM(HotSpot):字符串常量池(StringTable)

文章目录 一、内存结构图二、案例讲解三、总结 一、内存结构图 JDK1.6 JDK1.8 我们发现&#xff0c;StringTable移入了Heap里面。所以&#xff0c;应该想到&#xff0c;StringTable将受到GC管理。 其实&#xff0c;1.6中&#xff0c;在方法区中的时候&#xff0c;也是受GC管…

工单管理系统功能解析,企业运营效率提升利器

工单管理系统如ZohoDesk提供工单生成分配、跟踪、数据分析、客户服务管理及移动兼容等功能&#xff0c;提升效率、增强服务、便于监管和降低成本&#xff0c;是现代企业信息化建设的重要部分。 一. 工单管理系统一般有哪些功能 1. 工单生成与分配 工单管理系统的基础功能是创…

19 vue3之自定义指令Directive按钮鉴权

directive-自定义指令&#xff08;属于破坏性更新&#xff09; Vue中有v-if,v-for,v-bind&#xff0c;v-show,v-model 等等一系列方便快捷的指令 今天一起来了解一下vue里提供的自定义指令 Vue3指令的钩子函数 created 元素初始化的时候beforeMount 指令绑定到元素后调用 只…

Java增强for循环遍历集合删除指定值不安全问题

在这里因为remove方法有两种参数&#xff0c;一种是对象&#xff08;删除此元素&#xff09;&#xff0c;一种是Integer &#xff08;删除此下标对应的元素&#xff09;。恰好我对象类型就是Integer&#xff0c;所以或默认为删除下标对应元素&#xff0c;造成下标越界不安全。可…

Python的异步编程

什么是协程&#xff1f; 协程不是计算机系统提供&#xff0c;程序员人为创造。 协程也可以被称为微线程&#xff0c;是一种用户态内的上下文切换技术。简而言之&#xff0c;其实就是通过一个线程实现代码块相互切换执行。 实现协程有那么几种方法&#xff1a; greenlet&…

高校体育场小程序|高校体育场管理系统系统|体育场管理系统小程序设计与实现(源码+数据库+文档)

高校体育场管理系统小程序 目录 体育场管理系统小程序设计与实现 一、前言 二、系统功能设计 三、系统实现 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大厂码农|毕设布道…

关于Elastic Search与MySQL之间的数据同步

目录 前言 思路分析 同步调用 异步通知 监听binlog 选择 实现数据同步 思路 运行项目 声明交换机、队列 1&#xff09;引入依赖 2&#xff09;声明队列交换机名称 3&#xff09;声明队列交换机 发送MQ消息 接收MQ消息 前言 Elastic Search中的酒店数据来自于MyS…

C++进阶(3): 二叉搜索树

二叉搜索树的概念 二叉搜索树又称二叉排序树&#xff0c;它或者是一颗空树&#xff0c;或者具有以下性质的二叉树&#xff1a; 若它的左子树不为空&#xff0c;则左子树上所有的节点的值都小于等于 根节点的值若它的右子树不为空&#xff0c;则右子树上所有的节点的值都大于等…

指针(4)

目录 1. 数组名的理解 但是有两个例外 sizeof(数组名)&#xff0c; • &数组名 2. ⼀维数组传参的本质 2.1指针打印数组 3.冒泡排序 4.二级指针 5 指针数组 5.1 指针数组模拟二维数组 1. 数组名的理解 前面数组中提到 数组名的地址就是首元素的地址&#xff0c; 代…

国庆节快乐

葡萄城在这里祝大家国庆快快乐&#xff1a; 10月葡萄城活动&#xff1a; 公开课 【从软件应用走向数据应用——葡萄城技术赋能数据挖掘】 新版本发布&#xff1a; 活字格 V10.0 Update1新版本发布

【cache】浅析四种常用的缓存淘汰算法 FIFO/LRU/LFU/W-TinyLFU

本文浅析淘汰策略与工作中结合使用、选取&#xff0c;并非针对算法本身如何实现的 文章目录 FIFOLFULRUW-TinyLFU实践与优化监控与调整 FIFO first input first output &#xff0c; 先进先出&#xff0c;即最早存入的元素最先取出&#xff0c; 典型数据结构代表&#xff1a;…

2024年10月1日历史上的今天大事件早读

989年10月1日 北宋政治家范仲淹出生 1814年10月1日 反法联盟各参加国在奥地利首都维也纳召开会议 1927年10月1日 苏联开始实施第一个五年计划 1930年10月1日 中国收回威海卫租界 1931年10月1日 日本人在东北拼凑伪政权 1938年10月1日 大型纪录片《延安与八路军》开拍 194…

65.【C语言】联合体

目录 目录 1.定义 2.格式 3.例题 答案速查 分析 4.练习 答案速查 分析 5.相同成员的联合体和结构体的对比 6.联合体的大小计算 2条规则 答案速查 分析 练习 答案速查 分析 7.联合体的优点 8.匿名联合体 1.定义 和结构体有所不同,顾名思义:所有成员联合使用同…