【Tomcat Servlet】如何在idea上部署一个maven项目?

目录

1.创建项目

2.引入依赖

3.创建目录

4.编写代码

5.打包程序

6.部署项目

7.验证程序

什么是Tomcat和Servlet?


以idea2019为例:

1.创建项目

1.1 首先创建maven项目

1.2 项目名称 


 


2.引入依赖

2.1 网址输入mvnrepository.com进入maven中央仓库->地址。点击搜索servlet,找到Java Servlet API。

 2.2 点击进入找到版本3.1.0.,点击进入。

2.3 往下翻有一段代码。复制这段代码:

2.4 进入项目里的pom.xml,首先添加下面这段代码:

<dependencies></dependencies>

2.5 再将刚刚中央仓库复制的那段代码复制到dependencies中。

或者以上引入依赖步骤直接省略,直接复制下面这段:

    <dependencies><!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency></dependencies>

2.6 接下来点击右上角的刷新图标,进行下载相关资源。如果是首次配置maven,这个下载会比较慢,后面再次创建其他maven项目这个下载就会很快。并且第一次下载可能会有一些问题,有可能是还没下载完,多次刷新右上角图标,是一种解决办法。

额外的如果还需要mysql和jackson(解析json数据格式的库)的依赖,还是同样的方法搜索mysql和jaskon。注意版本。

整体依赖代码如下:

<dependencies><!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency><!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.49</version></dependency><!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.14.2</version></dependency></dependencies>

至此,引入依赖大功告成。


3.创建目录

 3.1 接下来在main目录下创建webapp目录,再在webapp目录下创建WEB-INF目录,最后在WEB-INF目录下创建web.xml文件

 

 3.2 此时的web.xml是空的,复制下面这段代码到web.xml中。直接复制即可。

<!DOCTYPE web-app PUBLIC"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app><display-name>Archetype Created Web Application</display-name>
</web-app>


4.编写代码

接下来我们编写一个简单的servlet程序。

在main目录下的java文件中编写代码。写一个响应hello world。别忘记路径那块的注解。


5.打包程序

接下来对刚才的java代码进行打包(war包)。

打包之前我们首先做这两步:maven默认是打成jar包(Java通用的压缩包),第一段代码是为了修改成war包(Tomcat专属的压缩包),第二段是为了设置包名。设置完后记得右上角刷新。

样例代码如下,报包名可自己修改。

<packaging>war</packaging><build><finalName>Hello</finalName></build>

接下来点击这个。

再继续点击。 

仔细看左边,会出现一个target文件,这个里面放的就是我们每次打好的包。


6.部署项目

找到你的Tomcat在文件夹中的位置。

把war包拷贝到Tomcat的webapps目录下。

启动Tomcat,终端输入startup.bat也行(前提得配置环境变量)。bin目录里找startup.bat双击也行。

启动成功后,webapps里会多出来一个和包名一样的文件夹。这个包就是Tomcat启动后自动对war包解压缩得到的。


7.验证程序

网址上输入127.0.0.1:8080/Hello/hello

 127.0.0.1:8080/是默认的

Hello是刚才war包的名字,是一级路径。

hello是Java代码中注解里的,是二级路径。

即127.0.0.1:8080 / context path / servlet path


8.使用Smart Tomcat进行部署

1.下载Smart Tomcat

点击 File → Settings

点击 Plugins,在搜索栏搜索 Smart Tomcat,然后进行安装即可 

 2.配置Smart Tomcat

点击 Add Configuration

点击左上角的+号,并选择 Smart Tomcat 

 下面可以不修改。

配置好 Smart Tomcat 之后,Add Configuration 就会显示成 Name 的名字,并且右边多了个三角形运行的符号。以后点击这个三角形启动Tomcat。

3.启动Tomcat

点击三角形运行 Smart Tomcat,出现如下信息表示程序启动成功。

点击蓝色的连接,跳转到项目路径,再增加 Servlet Path(二级路径) 就可以显示出该程序的结果

下面写一段代码验证,为防止乱码,指定响应编码格式,使用注解指定 Servlet Path 为 hello 。

重启Tomcat。 输入URL。

格式为 127.0.0.1:8080/Context Path/Servlet Path


什么是Tomcat和Servlet?

Tomcat : 是Java圈子里最流行的HTTP服务器。是一种现成的,用Java写的的服务器程序。当然我们自己也可以基于TCP或UDP编写一个服务器。不过实际中一般都是利用Tomcat中封装好了的接口来进一步实现我们自己的逻辑需求。

Servlet : 是Tomcat提供的一组API,封装了HTTP协议,相当于一个容器,用于客户端和Tomcat服务器之间的交互。 

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

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

相关文章

基于深度学习的人脸性别年龄识别 - 图像识别 opencv 计算机竞赛

文章目录 0 前言1 课题描述2 实现效果3 算法实现原理3.1 数据集3.2 深度学习识别算法3.3 特征提取主干网络3.4 总体实现流程 4 具体实现4.1 预训练数据格式4.2 部分实现代码 5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 毕业设计…

Vue2实现别踩白块(第一种)

实际效果:可选模式 开始按钮 游戏界面 游戏失败(不点击任何黑块) 游戏中(点击黑块变灰色) 功能简介: 1、点击无尽模式,就是常规速度,定时器20毫秒,然后无限计分 2、急速模式,比常规快一倍,定时器8毫秒 3、计时模式,限时60秒,定时器20毫秒,计分 以上所有模式,点击…

Java使用pdfbox进行pdf和图片之间的转换

简介 pdfbox是Apache开源的一个项目,支持pdf文档操作功能。 官网地址: Apache PDFBox | A Java PDF Library 支持的功能如下图.引入依赖 <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox-app</artifactId><version>…

【源码分析系列】antdv table滚动时固定表头

背景 当页面滚动的时候&#xff0c;如果超过表格的部分&#xff0c;表格的头部会固定在某个位置&#xff0c;方便用户看到数据栏的标。项目采用的是vue2antdv&#xff0c;但是这个版本的table没有sticky属性&#xff0c;所以需要自行解决。 滚动前&#xff1a; 滚动后&#x…

做海外问卷调查有什么答题技巧和方法?

大家好&#xff0c;我是橙河老师&#xff0c;这篇文章聊一聊做海外问卷调查有什么答题技巧和方法&#xff1f; 海外问卷调查&#xff0c;其实就是一些外国公司&#xff0c;对外发放的有偿市场调查问卷&#xff0c;目的是收集消费者的意见和反馈&#xff0c;我们只要按照要求去…

Redis Sentinel 哨兵模式

Sentinel 哨兵模式 Redis Sentinel 官网 Redis 的 Sentinel 文档 -- Redis中国用户组&#xff08;CRUG&#xff09; Sentinel Redis 命令参考&#xff08;红色&#xff09; Sentinel 通过监控的方式获取主机的工作状态是否正常&#xff0c;当主机发生故障时&#xff0c; Senti…

Postman测试金蝶云星空Webapi【协同开发云】

文章目录 Postman测试金蝶云星空Webapi【协同开发云】环境说明业务背景大致流程具体操作请求登录接口请求标准接口查看保存提交审核反审核撤销 请求自定义接口参数是字符串参数是实体类单个实体类实体类是集合 其他 Postman测试金蝶云星空Webapi【协同开发云】 环境说明 金蝶…

性能测试计划注意事项

在做任何事情之前,唯有进行了良好的计划,方可收到好的效果,性能测试 也是如此,一份定义明确的测试计划将为我们的测试提供良好的保证。下面和大 家讨论一下制定性能测试计划时的一些注意事项。 1. 分析应用程序 测试人员应当对系统的软硬件以及配置情况非常熟悉,这样模…

页面淘汰算法模拟实现与比较

1.实验目标 利用标准C 语言&#xff0c;编程设计与实现最佳淘汰算法、先进先出淘汰算法、最近最久未使用淘汰算法、简单 Clock 淘汰算法及改进型 Clock 淘汰算法&#xff0c;并随机发生页面访问序列开展有关算法的测试及性能比较。 2.算法描述 1. 最佳淘汰算法&#xff08;Op…

Redis与Mysql的数据一致性(双写一致性)

双写一致性&#xff1a;当修改了数据库的数据也要同时的更新缓存的数据&#xff0c;使缓存和数据库的数据要保持一致。 一般是在写数据的时候添加延迟双删的策略 先删缓存 再修改数据 延迟一段时间后再次删除缓存 这种方式其实不是很靠谱 一致性要求高 共享锁&#xff1a;读…

制作网页版H5页面商城源码系统+随心DIY 带前后端完整搭建教程

随着智能手机的广泛普及&#xff0c;人们越来越依赖手机进行日常生活中的各种活动&#xff0c;包括购物。传统的PC端购物模式已经无法满足人们的需求&#xff0c;因此开发移动端的购物系统势在必行。而现如今H5技术不断发展成熟&#xff0c;使得在手机等移动设备上展示网页版商…

vue-cli5.0.x优雅降级,配置项目兼容旧版浏览器

兼容低版本谷歌浏览器 vue-cli5.0.x脚手架下的&#xff0c;如何降低项目版本以适用于底版本的浏览器。 直接使用默认配置打包部署出来的项目再40&#xff0c;60、70版本的谷歌浏览器跑不起来&#xff0c;蓝屏或者浏览器白屏一般这种情况都需要通过Babel去做转换&#xff0c;我…