Servlet | Servlet简单入门——构建第一个Servlet项目
本专栏主要是记录学习JavaWeb中的Servlet相关知识点,如果刚开始学习Java的小伙伴可以点击下方连接查看专栏
本专栏地址:🔥Servlet
Java入门篇: 🔥Java基础学习篇
Java进阶学习篇(持续更新中):🔑Java进阶学习篇

本系列文章将带领刚开始学习Servlet的小伙伴从0构建Servlet项目,并进行深入了解,明白其原理所在,作者认为知其然要知其所以然才能将知识点学的更加通透,预计本系列会有以下文章,在全部更新完成后可以点击连接查看
| 文章名称 | 文章地址 |
|---|---|
| Servlet简单入门——构建第一个Servlet项目 | |
| Servlet执行流程 | |
| Servlet生命周期 | |
| Servlet体系结构 | |
| Servlet urlPattern配置 | |
| XML 配置方式编写 Servlet |
文章目录
- 一、前言
- 二、构建Servlet项目
- 1.构建web项目
- 2.导入坐标
- 3.定义一个类实现Servlet接口
- 4.配置Servlet访问路径
- 4.执行Servlet
- 5.查看控制台
- 三、关于端口号
- 四、结语
一、前言
本文将讲述如何 从0构建一个Servlet项目 以及Servlet的执行流程
二、构建Servlet项目
1.构建web项目
这个在之前已经讲述过如何使用骨架去创建一个Web项目,推荐大家使用骨架进行创建,这里就不多加赘述了
2.导入坐标
这里需要在pom.xml文件中导入Servlet 的坐标, provided指的是在编译和测试过程中有效,最后生成的war包时不会加入,因为Tomcat的lib目录中已经有servlet-api这个jar包,如果在生成war包的时候生效就会和Tomcat中的jar包冲突,导致报错
<dependencies><dependency><groupId>javax.servlet</groupId><artifactId>javax.servlet-api</artifactId><version>3.1.0</version><scope>provided</scope></dependency></dependencies>
3.定义一个类实现Servlet接口
这里的实体类只需要继承Savlvet接口,然后出现爆红后不要慌张,直接使用Alt+Enter快捷键,选择第一个:重新接口中的所有方法即可

为了更直观的看到Servlet被访问了,我们在service方法中写一条输出语句,service方法在后续会讲解的,现在只需要知道在这里写输出语句就能直观看到是否被执行了
@Overridepublic void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {System.out.println("Servlet test");}
4.配置Servlet访问路径
这里需要在类前配置Servlet访问路径,这样打开URL后就可以输入路径访问,然后看到Servlet是否被执行了。此处我们可以摁住Ctrl再点击WebServlet查看一下源码

这里可以很清楚的看到,value和urlPatterns都是一样的效果,为了代码的可读性,知道此处写的是Servlet访问路径,我们就使用urlPatterns = "/路径"来配置路径,建议使用类名相似的名字,便于辨识,比如这里我的类名是ServletTest,那么我的路径写的就是/test
@WebServlet(urlPatterns = "/test")
4.执行Servlet
这里我们需要安装插件:MavenHelper,安装完成后右键点击项目,会有一个RunMaven的选项,再选择里面的Tomcat7:run就可以执行Servlet

在成功执行后,会在控制台输出一个URL(如下图所示),我们可以选择复制黏贴到浏览器打开,也可以直接点击打开,不过这个URL并不是我们所要访问的路径,因为之前配置了Servlet访问路径,所以在浏览器打开以后,还需要自己再添加路径,最终访问的路径应该为 http://localhost:80/web-testServlet/test( /test为自己设置的Servlet访问路径,可能与我不一定一样)
5.查看控制台
这里建议大家开个分屏,这样便于查看Servlet执行的巧妙之处,当我们打开网址的时候,就会在控制台输出刚刚我们编写的输出语句,当我们每一次刷新页面的时候都会输出语句,也证明我们的Servlet被成功执行了

三、关于端口号
可能有细心的小伙伴发现了在右边的页面的地址栏,并没有端口号,但是在控制台输出的URL里面有个端口号80,所以这里有个小知识:端口号为80的时候,就可以省略不写,也可以成功执行,但Servlet默认端口号是8080,在访问时一定要写端口号,否则没办法成功执行
四、结语
接下来将讲述Servlet的执行流程,有任何问题可以留言评论
相关文章:
Servlet | Servlet简单入门——构建第一个Servlet项目
本专栏主要是记录学习JavaWeb中的Servlet相关知识点,如果刚开始学习Java的小伙伴可以点击下方连接查看专栏 本专栏地址:🔥Servlet Java入门篇: 🔥Java基础学习篇 Java进阶学习篇(持续更新中)&am…...
Spring的IOC/DI,依赖注入的实现
Spring的IOC/DI,依赖注入的实现 https://download.csdn.net/download/weixin_41957626/87546826 资源地址 1.什么是Spring 1.1spring3 的体系结构图 图1 spring3的体系结构图 图2 spring4体系结构图 比较spring3的体系结构图,spring4去掉了spring3中的st…...
【tensorflow onnx】TensorFlow2导出ONNX及模型可视化教程
文章目录1 背景介绍2 实验环境3 tf2onnx工具介绍4 代码实操4.1 TensorFlow2与ONNX模型导出4.2 ONNX正确性验证4.3 TensorFlow2与ONNX的一致性检查4.4 多输入的情况4.5 设定输入/输出节点5 ONNX模型可视化6 ir_version和opset_version修改7 ONNX输入输出维度修改8 致谢原文来自于…...
天梯赛训练L1-013--L1-015
目录 1、L1-013 计算阶乘和 2、L1-014 简单题 3、L1-015 跟奥巴马一起画方块 1、L1-013 计算阶乘和 分数 10 题目详情 - L1-013 计算阶乘和 (pintia.cn) 对于给定的正整数N,需要你计算 S1!2!3!...N!。 输入格式: 输入在一行中给出一个不超过10的正…...
进程(操作系统408)
进程的概念和特征 概念: 进程的多个定义: 进程是程序的一次执行过程 进程是一个程序及其数据在处理机上顺序执行时所发生的活动 进程时具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位 上面所说…...
浅谈运维工程师的开发能力的培养
写在前面 本文已获得作者授权,作者的博客地址:https://www.cuiliangblog.cn/ 原文链接:浅谈运维工程师的开发能力的培养 一、运维工程师发展路线 1. 传统运维 侧重点是解决具体的问题。要求具备扎实的底层的知识储备,如网络、l…...
Netcode升级到1.2.0网络变量的变化的变化
Netcode升级到1.2.0网络变量的变化1 概述2 继承网络变量 NetworkVariable,派生类构造出错的问题2.1 代码描述2.2 问题记录2.3 解决办法:使用 NetworkVariable 即可3 网络变量 NetworkVariable 类的版本差异比较3.1 差异说明3.2 [1.0.2]版本的网络变量3.3…...
冥想第七百二十二天
1.周六去给朋友讲了一天的软件,给朋友带了2袋面包边,几袋方便面。感谢朋友的款待,做的蒸菜双拼,柠檬风爪,排骨汤,汤圆,牛肉,孜然回锅肉。 2.讲到下午五点,就回去了。感觉…...
AB测试——流程介绍(定义问题和指标选取)
前言: 作为AB测试的学习记录,本文主要介绍了AB测试的基本流程,以及指标类型和如何选取合适指标。 相关文章:AB测试——原理介绍 AB测试的基本流程是什么? AB测试(也称为分流测试)是一种常用的实…...
Linux(Centos)安装Minio集群
目录1:简介2:功能与集成3:架构4:搭建集群4.1:挂载磁盘4.1.1:要求4.1.2:创建挂载目录4.1.3:注意:需要将新建的目录挂在到对应的磁盘下,磁盘不挂载好,集群启动会…...
LeetCode 1662. 检查两个字符串数组是否相等 / 795. 区间子数组个数 / 剑指 Offer 47. 礼物的最大价值
1662. 检查两个字符串数组是否相等 2022.11.1 新的一月又开始了 题目描述 给你两个字符串数组 word1 和 word2 。如果两个数组表示的字符串相同,返回 true ;否则,返回 false 。 数组表示的字符串 是由数组中的所有元素 按顺序 连接形成的…...
【C++】缺省参数函数重载
🏖️作者:malloc不出对象 ⛺专栏:C的学习之路 👦个人简介:一名双非本科院校大二在读的科班编程菜鸟,努力编程只为赶上各位大佬的步伐🙈🙈 目录前言一、缺省参数1.1 缺省参数的概念1…...
Hbuilder 下载与安装教程
文章目录Hbuilder下载与安装教程Hbuilder简介一,下载Hbuilder二,安装Hbuilder三,简单使用四,Hbuilderx 调试Hbuilder下载与安装教程 Hbuilder简介 Builder是DCloud(数字天堂)推出的一款支持HTML5的Web开发…...
Mybatis工程升级到FlunetMybatis后引发的问题以及解决方法
0. 背景交代为了提高开发速度,我打算将公司原有Mybatis框架升级为FlunetMybatis。可是遇到了一系列问题,下面开始爬坑工程结构示意如下:src/ ├── main │ ├── java.com.demo │ │ ├── Application.java //S…...
Oracle VM VirtualBox6.1.36导入ova虚拟机文件报错,代码: E_INVALIDARG (0x80070057)
问题 运维人员去客户现场部署应用服务,客户是windows server 服务器(客户不想买新机器),我们程序是在linux系统里运行(其实windows也可以,主要是为了保持各地环境一致方便更新和排查问题)我们使…...
Superset数据探索和可视化平台入门以及案例实操
1、Superset背景 1.1、Superset概述 Apache Superset是一个现代的数据探索和可视化平台。它功能强大且十分易用,可对接各种数据源,包括很多现代的大数据分析引擎,拥有丰富的图表展示形式,并且支持自定义仪表盘。 1.2、环境说明 …...
VisualSP Enterprise - February crack
VisualSP Enterprise - February crack VisualSP(可视化支持平台)提供了一个上下文中完全可定制的培训平台,它可以作为企业web应用程序的覆盖层提供。无论员工正在使用什么应用程序,他们都能够快速访问页面培训和指导,说明如何最有效地使用该…...
004+limou+HTML——(4)HTML表格
000、前言 表格在实际开发中的应用还是比较多的,表格可以更加清晰地排列数据 001、基本结构 (1)构成 表格:<table>行:<tr>(table row,表格行),由多少组t…...
uniapp实现自定义相机
自定义相机起因由于最近用uniapp调用原生相机容易出现闪退问题,找了很多教程又是压缩图片又是优化代码,我表示并没有太大作用!!实现自定义相机使用效果图拓展实现多种自定义相机水印相机身份证相机人像相机起因 由于最近用uniapp调用原生相机容易出现闪退…...
插值多项式的龙格现象的介绍与模拟
在文章拉格朗日插值多项式的原理介绍及其应用中,笔者介绍了如何使用拉格朗日插值多项式来拟合任意数据点集。 事实上,插值多项式会更倾向于某些形状。德国数学家卡尔龙格Carl Runge发现,插值多项式在差值区间的端点附近会发生扭动&#x…...
机器学习分子动力学揭秘镁腐蚀原子机制:从DFT到MLMD的跨尺度模拟实践
1. 项目概述与核心价值镁合金,作为最轻的工程结构金属,在航空航天、生物医疗和下一代储能技术(如镁空气电池)领域被寄予厚望。然而,一个长期困扰材料科学家和工程师的“阿喀琉斯之踵”是其在水性环境中过快的腐蚀速率。…...
量子机器学习泛化边界:噪声环境下的理论与工程挑战
1. 量子机器学习泛化边界:理论与噪声的博弈场 量子机器学习(QML)正站在一个激动人心又充满挑战的十字路口。作为一名长期关注量子算法落地的从业者,我目睹了无数论文在理想化的模拟环境中宣称“量子优势”,却在真实的含…...
仅限首批200家零售企业获取:2024中国零售Agent成熟度评估矩阵V2.1(含137项能力测评项+自动生成差距报告)
更多请点击: https://codechina.net 第一章:AI Agent零售行业应用 AI Agent 正在重塑零售行业的客户体验、供应链效率与决策智能化水平。通过融合自然语言理解、多步推理、工具调用与记忆机制,AI Agent 不再是单点问答机器人,而是…...
多模态融合与多任务学习在智慧农业视觉系统的实战应用
1. 项目概述与核心价值 在可控环境农业(Controlled-Environment Agriculture, CEA)里,比如我们熟悉的垂直农场、智能温室,作物生长环境是高度可控的,但随之而来的管理复杂度也呈指数级上升。传统上,一个种植…...
大脑规则:为什么你学不进去?10个科学方法提升学习效率
大脑规则:为什么你学不进去?10个科学方法提升学习效率 副标题: 从进化论到认知科学,附实战学习方案 一、痛点:为什么你总是学不进去? 你有没有这样的经历: 坐在书桌前,书翻开了,但脑子一片空白 熬夜学习,第二天效率更低,形成恶性循环 一边看视频一边回消息,结果什…...
问题不是要不要审,而是审查放在哪条路径
很多团队把输出审核接进大模型服务后,第一反应是“更安全了”,真正上线才发现另一个代价更吓人:用户看到的流式回复开始一卡一顿,P95 首包时间和整段输出时间一起抖。⚠️ 这类问题往往不是审核模型慢,而是审核位置放错…...
Python之enc-dotenv包语法、参数和实际应用案例
Python enc-dotenv 包完整详解 enc-dotenv 是加密版 python-dotenv 核心增强包,专门解决明文存储环境变量(密钥、密码、Token) 的安全风险。它能将 .env 文件加密存储,运行时自动解密加载,彻底避免敏感配置明文泄露。 …...
一键搞定B站视频下载:跨平台工具BilibiliDown完整使用指南
一键搞定B站视频下载:跨平台工具BilibiliDown完整使用指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirro…...
如何在Windows 10/11上完美使用PS3手柄:DsHidMini虚拟HID驱动终极指南
如何在Windows 10/11上完美使用PS3手柄:DsHidMini虚拟HID驱动终极指南 【免费下载链接】DsHidMini Virtual HID Mini-user-mode-driver for Sony DualShock 3 Controllers 项目地址: https://gitcode.com/gh_mirrors/ds/DsHidMini 你是否还在为Windows系统无…...
戴森球计划蓝图架构范式:从模块化设计到星际规模工程的技术演进
戴森球计划蓝图架构范式:从模块化设计到星际规模工程的技术演进 【免费下载链接】FactoryBluePrints 游戏戴森球计划的**工厂**蓝图仓库 项目地址: https://gitcode.com/GitHub_Trending/fa/FactoryBluePrints 在戴森球计划的工厂建设中,蓝图设计…...
