【JavaEE】 IntelliJ IDEA 2022.2最新版Tomcat导入依赖详细教程全解及创建第一个Servlet程序
目录
一、软件资源
二、放置settings.xml文件
三、创建项目
四、引入依赖
五、创建目录
六、编写代码
写在前面:☞What is Servlet?
Servlet其实是一种实现动态页面的技术。是一组由Tomcat提供给程序员的API(应用程序编程接口),帮助程序员高效开发一个 web app。
静态页面:也就是内容始终固定的页面。即使用户不同、时间不同、输入的参数不同,页面内容也不会发生变化。
动态页面指:的就是用户不同、时间不同、输入的参数不同,页面内容会发生变化。
构建动态页面的技术有很多,每种语言都有一些相关的库或者框架。Servlet 就是Tomcat 这个 HTTP 服务器提供给Java 的一组应用程序编程接口,来完成构建动态页面这个任务。
浅浅了解一下,让我们开始今天的第一个serlvet项目。
一、软件资源
所有需要的软件我都放在这里啦,可以免费下载!
IntelliJ IDEA 2022.2最新版Tomcat导入依赖详细教程全解及创建第一个Servlet程序中的所用文件
二、放置settings.xml文件
点开File->Settings->Maven,将settings.xml文件放到指定位置。
settings.xml是用来设置Maven 参数的配置文件,包含类似本地仓库、远程仓库和互联网使用的代理信息等配置。
我会把相关文件上传资源,可以免费下载哦😯
三、创建项目
点开File->New->Project,选择Maven类型,改名随意,在Location可以选择你要存放的位置,我是默认没改的,一般不建议放在C盘,根据要求选择。
四、引入依赖
Maven项目创建完毕后,会自动生成一个pom.xml文件。我们需要在这个文件中引入Servlet API依赖的jar包。
1.点击网址 : 搜索servlet,选择第一个。
2.根据Tomcat的版本选择需要的依赖版本,我的Tomcat下载的8.5的,详细关于Tomcat的下载指路这篇:【JavaEE】Tomcat安装教程及环境配置详解_小熊爱吃软糖吖的博客-CSDN博客
划重点!!!
Servlet 的版本要和 Tomcat 匹配。如果我们使用 Tomcat 8.5, 那么就需要使用 Servlet 3.1.0。
点击此网页 Apache Tomcat® - Which Version Do I Want? 查询版本对应关系。
3.把中央仓库提供的代码复制到我们自己创建的项目中的pom.xml文件中。原来的要替换,仔细看一下。当我们复制完成后就会出现一个小m标志,点击就会更新。
4.配置文件就好了,手动拷贝 war /jar包到 Tomcat 的过程比较麻烦。我们接下来使用几个插件部署。
点击File->Settings->Plugins->Marketplace,在搜索框里输入Smart Tomcat和Maven Helper,然后点击Install安装。
五、创建目录
1.在main文件下点击鼠标右键->New->Directory。
自己定义一个名字,我起的是java,一定使用英文起名,避免以后出现什么问题!
2.我们需要保证的是新建的目录是根目录,根目录一般是蓝色的文件样式,如果你建出来的目录不是的话,就跟着我改一下~
选择新建的目录右击,按下述图片操作。
一些额外小知识:
src 表示源代码所在的目录
main/java 表示源代码的根目录。 后续创建 .java 文件就放到这个目录中。
main/resources 表示项目的一些资源文件所在的目录。此处暂时不关注。
test/java 表示测试代码的根目录。 此处暂时不关注。
此处是小意外:
配置好的依赖下面有一个src目录,点开来里面有一个main目录、一个webapp目录、resources文件。
有些人可能打开来没有webapp目录,没关系~这时候只需要我们手动创建一个就好了!
1) 创建 webapp 目录
在 main 目录下, 和 java 目录并列, 创建一个 webapp 目录。一定要一样的!!!不能起别的名!
2) 创建 web.xml
然后在 webapp 目录内部创建一个 WEB-INF 目录, 并创建一个 web.xml 文件
3)编写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>
六、编写代码
1.在java目录下新建一个类,这里我习惯先新建一个包,再在里面创建类。根据自己的习惯来。
2.使新建的类HelloServlet继承父类HttpServlet
3.重写父类的doGet和doPost方法 。在空白处右击,然后左击选中目标。
4.重写doGet方法。将原来的删去。写上下述内容。字符串可以自己想写啥就写啥。
resp.getWriter.write("Hello Servlet");
resp.getWriter.write功能:向前台页面显示一段信息。 当在普通的url方式中,会生成一个新的页面来显示内容。 当在ajax的方式中,会在alert中显示内容。
5.运行这个程序,因为版本不同,每个人这块的界面也有所不同。
我这个版本处理这一步比人难点,放心!!! 只是找东西麻烦点,我会在这后面放一下大多数人的界面样子。
右击->Run->Add new Configuration(添加新配置)选择Smart Tomcat
一般人界面这个样子,直接点击
划重点!选择正确的Tomcat server,这个路径就是当时安装Tomcat的路径,一定要找正确!最后点击ok 。Context path表示的是项目的路径,一般默认和项目名是一样的,我们可以不修改。
右击run->All Configurations
找到小猫咪运行
一般人点击小绿箭头就可以了
6.为自己之前建的类定义一个请求路径,一定要加 / 斜杠 !然后运行看看,点击出现的网址,这个就是我们项目的初始页面。
小贴士:@WebServlet 属于类级别的注解,标注在继承了 HttpServlet 的类之上。常用的写法是将 Servlet的相对请求路径直接写在注解内,如下所示
@WebServlet(/"hello")
7.显示网页
程序员的尽头是“Hello World”! (*╹▽╹*)
在后面加上我们自己定义的相对路径名,然后就可以跳转我们写的页面啦!
8.完整的类代码,有需要的直接复制就可以啦
package demo;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/Hello")
public class HelloServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("Hello Servlet");resp.getWriter().write("Hello Servlet");}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {super.doPost(req, resp);}
}
至此,我们的第一个Servlet项目就成功建立啦!很感谢你看到这,希望这篇文对你有用哦!(*^▽^*)
相关文章:
![](https://img-blog.csdnimg.cn/f081a4cfb4944411992ee1c1e76a0ea1.png)
【JavaEE】 IntelliJ IDEA 2022.2最新版Tomcat导入依赖详细教程全解及创建第一个Servlet程序
目录 一、软件资源 二、放置settings.xml文件 三、创建项目 四、引入依赖 五、创建目录 六、编写代码 写在前面:☞What is Servlet? Servlet其实是一种实现动态页面的技术。是一组由Tomcat提供给程序员的API(应用程序编程接口)…...
![](https://img-blog.csdnimg.cn/e503a3f845ac42909dc9e18d21c88b20.png#pic_center)
常见的卷积神经网络结构——分类、检测和分割
本文持续更新~~ 本文整理了近些年来常见的卷积神经网络结构,涵盖了计算机视觉领域的几大基本任务:分类任务、检测任务和分割任务。对于较复杂的网络,本文只会记录其中的核心模块以及重要的网络设计思想,并不会记录完整的网络结构。…...
![](https://img-blog.csdnimg.cn/c2dd39dd99fa44f7af1025b26e15afca.png#pic_center)
20230323英语学习
Why Can You “Hear the Ocean” in Seashells? 为啥能在贝壳里“听见海的声音”? We’re told a number of stories as kids. One of the more harmless of these little lies is the one about seashells.You know the one: hold up a seashell to your ear, an…...
![](https://img-blog.csdnimg.cn/e8c47bdae4ae4ec7b47bedfea8160c30.png)
【粉丝投稿】上海某大厂的面试题,岗位是测开(25K*16)
简单介绍一句,大专出身,三年经验。跳了四次槽,面试了无数次,现在把自己的面试经验整理出来分享给大家,堪称必杀技! 1,一切从实际出发,对实际工作进行适当修饰 2,不会的简…...
![](https://www.ngui.cc/images/no-images.jpg)
shell简单使用介绍
脚本的基本元素声明,在解释并执行当前脚本文件中的语句之前,需要声明使用的命令解释器#一般写的解释器为 #!/bin/bash这里的#不再是注释了,而是必要的声明命令,也就是需要执行的语句注释,对代码进行解释说明分为单行注…...
![](https://img-blog.csdnimg.cn/b1bb225ec1f545e3bfdaab0198d5d61f.png#pic_center)
RK3568平台开发系列讲解(调试篇)内核函数调用堆栈打印方法汇总
🚀返回专栏总目录 文章目录 一、dump_stack 函数二、WARN_ON(condition)函数三、BUG_ON (condition)函数四、panic (fmt...)函数沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将对驱动调试方法进行汇总学习。 一、dump_stack 函数 dump_stack 作用:打印内核调…...
![](https://img-blog.csdnimg.cn/8dd3cba53b804b189430745c8218ebf1.png)
一次内存泄露排查
前因: 因为测试 长时间压测导致 接口反应越来越慢,甚至 导致服务器 崩溃 排查过程 1、top 查看是 哪个进程 占用 内存过高 2、根据 进程 id 去查找 具体是哪个 程序的问题 ps -ef| grep 41356 可以看到 具体的 容器位置 排查该进程 对象存活 状态…...
![](https://img-blog.csdnimg.cn/e45634e4f8114843bcbda7cc1346f0e0.png)
「Mac安装ps」Adobo Photoshop 2023 下载安装详情教程,支持 AI 插件的 24 版 Photoshop
前言 Adobo Photoshop 2023 已推出,由于目前AI人工智能技术火爆,而很多的 AI 插件最低也需要24版的 photoshop ,所以这里我遍搜集并整理了此新版本的 photoshop 安装使用教程,后续也将提供 AI 插件的下载安装教程 安装文件下载 …...
![](https://img-blog.csdnimg.cn/2db4c3283bac4a47a2938603f5ebdcaa.png#pic_center)
Redis单线程还是多线程?IO多路复用原理
目录专栏导读一、Redis版本迭代二、Redis4.0之前为什么一直采用单线程?三、Redis6.0引入多线程四、Redis主线程和IO线程是如何完成请求的?1、服务端和客户端建立socket连接2、IO线程读取并解析请求3、主线程执行请求命令4、IO线程会写回socket和主线程清…...
![](https://img-blog.csdnimg.cn/img_convert/68b2b3c1100f907df2e15fa80dffcc51.png)
小菜鸟Python历险记:(第五集)
今天写的文章是记录我从零开始学习Python的全过程。在Python中对方法进行备注的时候,往往都是写在方法中的第一行所在位置。在书写注释以后,在调用方法的时候,鼠标点击方法会有一个浮动的提示显示备注内容。具体如下图所示:注释的…...
![](https://img-blog.csdnimg.cn/ea1c4bd5942c45cfa6b2d23b5a6e108b.png)
【思维模型】五分钟了解<复利思维>,为何学习复利思维?什么是复利思维?如何应用复利思维?
【思维模型】五分钟了解<复利思维>,为何学习复利思维?什么是复利思维?如何应用复利思维?1. 为何学习复利思维?2. 什么是复利思维?3. 如何应用复利思维?4. 小结参考&#…...
![](https://www.ngui.cc/images/no-images.jpg)
Vue.js语法详解:从入门到精通
Vue.js是一个流行的JavaScript框架,用于构建用户界面。它的核心特性包括数据双向绑定、组件化架构、虚拟DOM和响应式系统等。在本文中,我们将深入探讨Vue.js的语法,帮助读者更好地理解和应用Vue.js。1.模板语法Vue.js的模板语法采用了类似HTM…...
![](https://www.ngui.cc/images/no-images.jpg)
程序员的代码行数越少越好?
有些人可能会认为,应用程序中的代码行越少,就越容易阅读。这句话只有部分正确,我认为代码可读性的度量标准包括:代码应具备一致性代码应具备自我描述性代码应具备良好的文档代码应使用稳定的现代功能代码不应过于复杂代码的性能不…...
![](https://www.ngui.cc/images/no-images.jpg)
【每日一题Day156】LC1032字符流 | 字典树
字符流【LC1032】 设计一个算法:接收一个字符流,并检查这些字符的后缀是否是字符串数组 words 中的一个字符串。 例如,words ["abc", "xyz"] 且字符流中逐个依次加入 4 个字符 a、x、y 和 z ,你所设计的算法…...
![](https://img-blog.csdnimg.cn/c863f17882514790a0939b6441e131a5.png)
V2G模式下含分布式能源网优化运行研究(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 📋📋📋本文目录如下:🎁🎁🎁 目录 💥1 概述 📚2 运行结果 &am…...
![](https://img-blog.csdnimg.cn/ee08289ffcff4eb09eea40e4d0bf4147.jpeg#pic_center)
手写一个简单的RPC框架
学习RPC框架,由繁化简,了解其本质原理 文章目录项目简介什么是RPC?项目模块项目代码common模块client模块server模块framework模块测试项目简介 什么是RPC? RPC(Remote Procedure Call)即远程过程调用&am…...
![](https://img-blog.csdnimg.cn/img_convert/90ea963cfd2d9b60b1eefa840f653db5.gif)
【剑指offer】旋转数组的最小数字
👑专栏内容:剑指offer⛪个人主页:子夜的星的主页💕座右铭:前路未远,步履不停 目录一、题目描述1、题目2、示例示例1示例2二、题目分析1、暴力法2、二分法三、代码汇总1、暴力法2、二分法一、题目描述 1、题…...
![](https://img-blog.csdnimg.cn/b9614dc9ed254922b18f385f2e30f473.png)
【Dorker】Portainer轻量级可视化工具
文章目录Portainer简介登录Portainer第一次登录需创建admin,访问地址:xxx.xxx.xxx.xxx:9000选择local选项卡后本地docker详细信息展示安装nginx私有镜像仓库管理Portainer简介 Portainer是Docker的图形化管理工具,提供状态显示面板、应用模板…...
![](https://www.ngui.cc/images/no-images.jpg)
基于 vue.js 进行组件封装的方案
摘要:本文将介绍如何基于 vue.js 进行组件封装的方案。我们将从分析组件封装的优势开始,然后依次介绍 vue.js 的基本概念,以及如何创建、封装和使用自定义组件。最后,我们将通过一个实际的示例,演示如何实现一个基于 v…...
![](https://img-blog.csdnimg.cn/504cdbb1fdf84667a26b96492db49870.png)
【Unityc#专题篇】之c#基础篇
👨💻个人主页:元宇宙-秩沅 👨💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨💻 本文由 秩沅 原创 👨💻 收录于专栏:uni…...
![](https://img-blog.csdnimg.cn/img_convert/845fa9bd09c5354fd05ec224a505c5cf.png)
Python(白银时代)——模块、包、异常
异常 概念 程序运行时,如果Python 解释器遇到了错误,会停止程序运行,并且提示错误信息,这就是异常 程序停止执行并提示错误信息的动作,称为 抛出异常 异常捕获 try: 里面的代码,不确定是否能够正常执行. …...
![](https://www.ngui.cc/images/no-images.jpg)
小程序和Vue写法的区别
小程序和Vue写法的区别主要有以下几点: 语法不同:小程序使用的是WXML、WXSS和JS,而Vue使用的是HTML、CSS和JSX。 数据绑定方式不同:小程序使用的是双向数据绑定,而Vue使用的是单向数据流。 1)在小程序中需…...
![](https://www.ngui.cc/images/no-images.jpg)
如何实现分布式锁
一、锁的作用 锁是为了解决多线程情况下,对于共享资源的访问安全问题。 但是当系统是分布式的时候,本地锁已经没法锁住所需要的资源,因为本地获取了锁,其他系统无法得知本地锁的情况。 分布式锁,是独立于系统的第一方…...
![](https://img-blog.csdnimg.cn/20210607205838704.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ2MTEwNTU2,size_16,color_FFFFFF,t_70)
使用VS2019连接Microsoft SQL Server Compact 4.0数据库
简介 SQL Server Compact Edition是微软推出的一个适用于嵌入到移动应用的精简数据库产品,Windows Mobile开发人员能够使用SQL Server CE开发出将数据管理能力延展到Window Mobile移动设备上的应用程序。虽然SQL Server CE占用的磁盘空间只有3到5兆左右,…...
![](https://www.ngui.cc/images/no-images.jpg)
Vue2 和 Vue3 的对比
Vue2 vs Vue3 Vue 是一款流行的 JavaScript 框架,用于构建交互式 Web 界面。Vue2 和 Vue3 是 Vue.js 的两个版本。Vue3 是 Vue.js 的最新版本,于 2020 年 9 月正式发布。Vue3 有许多改进和新功能,下面我们将对 Vue2 和 Vue3 进行比较。 性能…...
![](https://img-blog.csdnimg.cn/107f5c68c23f4bfe8fc428daf0b56563.png)
[数据结构]二叉树的链式存储结构
目录 二叉树的链式存储结构:: 1.创建一颗二叉树 2.二叉搜索树简介 3.前序、中序以及后序遍历 4.层序遍历 5.求一棵树的节点个数代码实现 6.求一棵树的高度代码实现 7.求叶子节点个数代码实现 8.求第K层节点个数代码实现 9.二叉树查找值为x的节点 二叉树…...
![](https://img-blog.csdnimg.cn/9ccbbd628f7041b899aa3ea35bc69b09.png)
黑马程序员 Redis 踩坑及解决
文章目录实战篇p30 短信登录-隐藏用户敏感信息p50 优惠券秒杀-添加优惠券p69 秒杀优化-异步秒杀思路p81 达人探店-点赞排行榜p87 好友关注-实现滚动分页查询问题 1问题 2p90 附近商铺-实现附近商户功能实战篇 p30 短信登录-隐藏用户敏感信息 问题描述:登录后会跳转…...
![](https://www.ngui.cc/images/no-images.jpg)
Matlab实现粒子群算法
粒子群算法(Particle Swarm Optimization,PSO)是一种群体智能算法,通过模拟自然界中鸟群、鱼群等生物群体的行为,来解决优化问题。 在PSO算法中,每个个体被称为粒子,每个粒子的位置表示解空间中…...
![](https://www.ngui.cc/images/no-images.jpg)
tailwindcss 写原生html
需要注意:html文件中引入的是output.css input.css写那三行预留的就可以了打包的时候只要打包html output.css img文件夹句ok,其他都不用原理是运行时生产output.css文件,直接【注意!注意!注意!class"…...
![](https://img-blog.csdnimg.cn/img_convert/7e5c52a16f1b6ede0a89da0edf8b7f38.png)
Java开发一年不到,来面试居然敢开口要20K,面完连8K都不想给~
前言 我的好朋友兼大学同学老伍家庭经济情况不错,毕业之后没两年自己存了点钱加上家里的支持,自己在杭州开了一家网络公司。由于公司不是很大所以公司大部分的开发人员都是自己面试的,近期公司发展的不错,打算扩招也面试了不少人…...
![](https://images.cnblogs.com/cnblogs_com/gaoweipeng/193608/blockquote.gif)
安庆市建设局网站/网络营销文案实例
引用:http://www.cnblogs.com/gaoweipeng/archive/2010/04/17/1714458.html 本文搜集了大量 jQuery 表格插件,帮助 Web 设计者更好地驾御 HTML 表格,你可以对表格进行横向和竖向排序,设置固定表头,对表格进行搜索&…...
![](https://img-blog.csdnimg.cn/img_convert/069bce00cdfd2b6486a692b8d04b795d.png)
网站建设技术团队有多重要/品牌关键词排名优化怎么做
今天来说一下关于flash player中安装失败怎么解决这方面的一些讯息,不少朋友对于flash player中安装失败怎么解决这方面的信息颇感兴趣的。小编今天就为此整理一些相关的讯息,希望对有需要的朋友有所帮助。flash player中安装失败的处理详解1、开始——…...
![](/images/no-images.jpg)
苏州全网网站建设/长春网站建设公司哪家好
前几天我叔公催我学车买车 今年我妈也跟我念叨了很多次,叫我去学车 说没有一台车说不过去,去见什么人也不方便。 我爸则说有房没有一台豪车都还不算成功,你怎么也得买一台宝马。 之前维哥也跟我说过一台豪车是我们一个重要的标签,…...
![](/images/no-images.jpg)
广东品牌网站建设/微信推广朋友圈广告
详解Linux命令中;、|、& 、&& 、 ||之间的区别?一、";"分号的用法方式:command1 ; command2用;号隔开每个命令, 每个命令按照从左到右的顺序,顺序执行, 彼此之间不关心是否失败, 所有命令都会执行。二、&q…...
![](https://img2018.cnblogs.com/blog/354272/201812/354272-20181212183310153-1406276603.jpg)
泰州整站优化/今日热榜
引言 Bleve是Golang实现的一个全文检索库,类似Lucene之于Java。在这里通过阅读其代码,来学习如何使用及定制检索功能。也是为了通过阅读代码,学习在具体环境下Golang的一些使用方式。代码的路径在github上https://github.com/blevesearch/ble…...
![](/images/no-images.jpg)
公司网站设计主页部分怎么做/google推广
转自:http://wulijun.github.io/2012/09/29/mysql-innodb-intro.html InnoDB是MySQL下使用最广泛的引擎,它是基于MySQL的高可扩展性和高性能存储引擎,从5.5版本开始,它已经成为了默认引擎。 InnODB引擎支持众多特性: 支…...