如何利用Idea创建一个Servlet项目(新手向)

💕"Echo"💕
作者:Mylvzi
文章主要内容:如何利用Idea创建一个Servlet项目(新手向)
在这里插入图片描述
Servlet是tomcat的api,利用Servlet进行webapp开发很方便,本文将介绍如何通过Idea创建一个Servlet项目(一共分为七步,这可能是我们写过的最复杂的 hello world)

在项目创建的过程中,我们将使用maven进行代码的编译和打包,mavn可以认为是一个更加专业的编译和打包工具

1.创建项目

打开Idea,点击NEW创建一个新项目

生成如下的目录结构

在这里插入图片描述

maven配置项介绍
在这里插入图片描述

2.引入依赖
我们所使用的Servlet是Tomcat的api,不是JDK,也就是说Servlet的使用需要引入第三方库,我们可以直接手动下载,但是在maven中不需要,我么只需将对应的地址写入到maven的配置项之中即可,maven会自动帮助我们下载

首先先去maven的中央仓库获取到Servlet的地址

https://mvnrepository.com/

进入界面之后,在上方的搜索框中输入servlet,然后点击search按钮
在这里插入图片描述
点击第一条结果
在这里插入图片描述
下翻,找到与你的tomcat版本相匹配的servlet版本(如果你的tomcat是8,直接点击下载3.1.0)
在这里插入图片描述
关于与tomcat匹配的servlet版本,可参考下图
在这里插入图片描述
点击对应的版本,下拉,找到Maven下面的代码,复制
在这里插入图片描述

打开idea,在maven的配置项文件中,复制刚才的内容(需要先创建一个标签)
在这里插入图片描述
注意:第一次引入依赖的时候可能需要等待一些时间(maven需要进行下载),如果下载不成功,尝试更换下网络

3.创建目录

maven项目是普适的,不仅仅局限于Tomcat,但是如果想在Maven中使用Tomcat,就需要遵守Tomcat的一些规范,这些规范就是一个固定的目录结构

在这里插入图片描述
与此同时,在我们创建好的web.xml文件中也需要添加一些内容,才符合完整的tomcat的文件格式要求

复制内容:

<!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.编写代码
1.创建一个类,并继承于HttpServlet,同时添加注解,进行路由匹配在这里插入图片描述
2.重写doGet方法

@WebServlet("/hello")// 这个注解的作用是进行路由匹配
public class HelloServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("hello world");// 这是在tomcat的控制台中打印
        resp.getWriter().write("hello world");// 在对应的服务器上进行打印
    }
}

在这里插入图片描述
服务器处理来自于客户端的请求主要分为三步:

  1. 读取请求并解析
  2. 根据请求计算响应
  3. 将响应返回给客户端

其中1,3两步tomcat自动帮助我们完成,让程序员只需关注内部的数据处理的逻辑

5.打包程序

1.首先配置属性–点击pom.xml–配置

在这里插入图片描述

    <packaging>war</packaging>
    <build>
        <finalName>java1</finalName>
    </build>

注意:java1所在部分就是你最终的文件名称

2.开始进行打包 – 点击右侧的M按键

在这里插入图片描述

3.双击package
在这里插入图片描述

当控制台中出现"BUILD SUCCESS"时表示创建成功
在这里插入图片描述
同时,在左侧也会创建出一个target目录
在这里插入图片描述
最后一个.war文件就是我们最终

6.部署程序
打开tomcat所在目录,将刚才创建好的war包复制到tomcat的webapp目录下

1.复制.war文件
在这里插入图片描述

2.打开tomcat所在目录,进入webapp目录

3.在webapp目录中进行粘贴
在这里插入图片描述

这样就完成了部署程序

7.验证程序
进入tomcat的bin目录下,双击startup.bat打开程序
在这里插入图片描述
在这里插入图片描述
最后出现一个打开时间就代表成功打开

在浏览器中访问部署好的程序
在这里插入图片描述

在这里插入图片描述

最终结果:
1.首先在打开的界面上出现hello world
在这里插入图片描述
2.在打开的tomcat程序中也有hello world
在这里插入图片描述

快去尝试部署一个程序吧!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据结构-最短路径(Dijkstra算法与Floyd算法)

介绍 对于网图来说&#xff0c;最短路径是指两顶点之间经过的边上权值之和最少的路径&#xff0c;其路径上第一个点记为源点&#xff0c;最后一个为终点。 计算最短路径有两个经典算法&#xff0c;即迪杰斯特拉&#xff08;Dijkstra&#xff09;算法与弗洛伊德&#xff08;Fl…

【医学大模型】Text2MDT :从医学指南中,构建医学决策树

Text2MDT &#xff1a;从医学指南中&#xff0c;构建医学决策树 提出背景Text2MDT 逻辑Text2MDT 实现框架管道化框架端到端框架 效果 提出背景 论文&#xff1a;https://arxiv.org/pdf/2401.02034.pdf 代码&#xff1a;https://github.com/michael-wzhu/text2dt 假设我们有一…

设计模式三:工厂模式

工厂模式包括简单工厂模式、工厂方法模式和抽象工厂模式&#xff0c;其中后两者属于23中设计模式 各种模式中共同用到的实体对象类&#xff1a; //汽车类&#xff1a;宝马X3/X5/X7&#xff1b;发动机类&#xff1a;B48TU、B48//宝马汽车接口 public interface BMWCar {void s…

代码随想录算法训练营第三七天 | 单调递增的数字、监控二叉树

目录 单调递增的数字监控二叉树 LeetCode 738.单调递增的数字 LeetCode 968.监控二叉树 单调递增的数字 当且仅当每个相邻位数上的数字 x 和 y 满足 x < y 时&#xff0c;我们称这个整数是单调递增的。 给定一个整数 n &#xff0c;返回 小于或等于 n 的最大数字&#xf…

Linux CentOS stream 9 firewalld

随着互联网行业快速发展&#xff0c;服务器成为用户部署网络业务重要的网络工具&#xff0c;但随之而来的就是更密集的网络攻击&#xff0c;这给网站带来了很大的阻碍。防火墙作为保障网络安全的主要设备&#xff0c;可以很好的抵御网络攻击。 防火墙基本上使用硬件和软件两种…

虚拟机 安装 centos7 带桌面

虚拟机 安装 centos7 流程 https://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/isos/x86_64/ CentOS-7-x86_64-DVD-2009.iso vmware 安装 centos7 的时候&#xff0c; 如果 不是 选择的 稍后 安装操作系统 &#xff0c; 会不让你选择配置选项&#xff0c;自动帮你把系统…

高数总结(6

目录 1.总结&#xff1a;小结&#xff1a; 1.总结&#xff1a; 小结&#xff1a; 关注我给大家分享更多有趣的知识&#xff0c;以下是个人公众号&#xff0c;提供 ||代码兼职|| ||代码问题求解|| 由于本号流量还不足以发表推广&#xff0c;搜我的公众号即可&#xff1a;

RK3588平台开发系列讲解(视频篇)ffmpeg 的移植

文章目录 一、ffmpeg 介绍二、ffmpeg 的组成三、ffmpeg 依赖库沉淀、分享、成长,让自己和他人都能有所收获!😄 📢ffmpeg 是一种多媒体音视频处理工具,具备视频采集功能、视频抓取图像、视频格式转换、给视频加水印并能将视频转化为流等诸多强大的功能。它采用 LGPL 或 G…

【办公类-16-07-03】“2023下学期 周计划-户外游戏 每班1周五天相同场地,6周一次循环、有场地、贴墙版”(python 排班表系列)

作品展示——有场地说明 背景需求&#xff1a; 前期做了一份“贴周计划”用的班主任版的户外游戏安排表&#xff08;中X班19周&#xff0c;没有场地&#xff09; 【办公类-16-07-02】“2023下学期 周计划-户外游戏 每班1周五天相同场地&#xff0c;6周一次循环”&#xff08;…

React近一年的发展趋势与挑战,以及距离v19版本的进展情况

大家好&#xff0c;我是宝哥 React近一年的发展趋势和挑战主要体现在以下几个方面&#xff1a; 版本发布频率下降&#xff1a;React自上一次版本更新以来&#xff0c;已经有一年多没有发布新的稳定版本&#xff0c;这引起了社区的广泛关注和讨论。最后一次更新是在2022年6月&…

从入门到精通:AI绘画与修图实战指南

&#x1f482; 个人网站:【 海拥】【神级代码资源网站】【办公神器】&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交流的小伙伴&#xff0c;请点击【全栈技术交流群】 在这篇文章中&#xff0c;我们将深入探讨如何利…

面试官:如何设计幂等性接口

什么是幂等性&#xff1f; 所谓幂等性&#xff0c;就是一次操作和多次操作同一个资源&#xff0c;所产生的影响均与一次操作的影响相同。 "幂等&#xff08;idempotent、idempotence&#xff09;是一个数学与计算机学概念&#xff0c;常见于抽象代数中。 幂等函数&…

ubuntu解决“E: Unable to locate package lrzsz“

今天在ubuntu上安装rzsz包时报错&#xff0c;提示无法定位包&#xff0c;提示如下 出现这个问题是因为apt的源没有更新&#xff0c;我们直接说解决办法 把下面的命令执行一遍即可 sudo add-apt-repository main sudo add-apt-repository universe sudo add-apt-repository re…

物流EDI:Verizon EDI 需求分析

作为物流行业的企业&#xff0c;Verizon与其供应商之间通过EDI来传输业务单据。在与Verizon建立EDI连接时&#xff0c;需要参考EDI 指南、采购订单条款和条件以及运输路线指南这三个文档。 点击此链接&#xff0c;获取上述的三个文档 Verizon供应商可以通过上述链接找到用于处…

ThreadLocal用法

一.项目需求 在我们进行新增用户时,会涉及到创建人和修改人字段如何获取的问题.我们不可能再后端将这两个字段写成静态的值. 1.1 解决方案 通过某种方式动态获取当前登录员工的id 员工登录成功后会生成JWT令牌并响应给前端: /*** 员工管理*/ RestController RequestMapping(&q…

【软考问题】-- 2 - IT知识 - 信息技术发展

一、基本问题 2 - IT知识 - 信息技术发展 问题1:数据库根据存储方式可以分为什么? 数据结构模型 层次模型:最早使用的 一种模型,它用 “树 ” 结构表示实体集之间的关联,其中实体集(用矩形框表示)为结点,而树中各结点之间的连线表示它们之间的关联。格式化数据模型 网状…

CDC 整合方案:MySQL > Flink CDC > Kafka > Hudi

博主历时三年精心创作的《大数据平台架构与原型实现&#xff1a;数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行&#xff0c;点击《重磅推荐&#xff1a;建大数据平台太难了&#xff01;给我发个工程原型吧&#xff01;》了解图书详情&#xff0c;…

力扣145 二叉树的后序遍历 Java版本

文章目录 题目描述递归解法代码 非递归解法思路代码 题目描述 给你一棵二叉树的根节点 root &#xff0c;返回其节点值的 后序遍历 。 示例 1&#xff1a; 输入&#xff1a;root [1,null,2,3] 输出&#xff1a;[3,2,1] 示例 2&#xff1a; 输入&#xff1a;root [] 输出…

log4j2的使用

基础用法 1. pom文件导入依赖 junit用来做测试 <dependency><groupId>org.apache.logging.log4j</groupId><artifactId>log4j-core</artifactId><version>2.5</version></dependency><dependency><groupId>org.…

第五次作业(防御安全)

需求: 1.办公区设备可以通过电信链路和移动链路上网&#xff08;多对多的NAT&#xff0c;并且需要保留一个公网IP 不能用来转换&#xff09; 2.分公司设备可以通过总公司的移动链路和电信链路访问到DMZ区的http服务器 3.分公司内部的客户端可以通过公网地址访问到内部的服务…