【JavaEE】Servlet(创建Maven、引入依赖、创建目录、编写及打包、部署和验证、smart Tomcat)

一、什么是Servlet?

Servlet 是一种实现动态页面的技术. 是一组 Tomcat 提供给程序猿的 API, 帮助程序猿简单高效的开发一个 web app

1.1 Servlet能干什么?

  • 🚕允许程序猿注册一个类, 在 Tomcat 收到某个特定的 HTTP 请求的时候, 执行这个类中的一些代码
  • 🚕帮助程序猿解析 HTTP 请求, 把 HTTP 请求从一个字符串解析成一个 HttpRequest 对象.
  • 🚕帮助程序猿构造 HTTP 响应. 程序猿只要给指定的 HttpResponse 对象填写一些属性字段, Servlet
  • 🚕就会自动的安装 HTTP 协议的方式构造出一个 HTTP 响应字符串, 并通过 Socket 写回给客户端

二、第一个Servlet程序

2.1 创建项目(Maven)

使用 IDEA 创建一个 Maven 项目
在这里插入图片描述

2.2 引入依赖(Servlet)

pom.xml 中引入 Servlet API 依赖的 jar 包:

🚓在中央仓库 https://mvnrepository.com/ 中搜索 “servlet”, 一般第一个结果就是
🚓选择匹配的版本(可以在 http://tomcat.apache.org/whichversion.html 查询版本对应关系)
🚓把中央仓库中提供的 xml 复制到项目的 pom.xml 中
在这里插入图片描述
在这里插入图片描述

2.3 创建目录(webapp)

在 main 目录下, 和 java 目录并列, 创建一个 webapp 目录
在这里插入图片描述
在 webapp 目录内部创建一个 WEB-INF 目录, 并创建一个 web.xml 文件
在这里插入图片描述
在web.xml中拷入以下代码
在这里插入图片描述

2.4 编写代码(HelloServlet)

在 java 目录中创建一个类 HelloServlet, 代码如下:

@WebServlet("/hello")
public class HelloServlet extends HttpServlet {@Overrideprotected void doDelete(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("Hello world");resp.getWriter().write("Hello world");}
}

🚓在这个类上方加上 @WebServlet("/hello") 注解, 表示 Tomcat 收到的请求中, 路径为 /hello 的请求才会调用 HelloServlet 这个类的代码. (这个路径未包含 Context Path)

🚓重写 doGet 方法. doGet 的参数有两个, 分别表示收到的 HTTP 请求 和要构造的 HTTP 响应. 这个方法会在 Tomcat 收到 GET 请求时触发

🚓HttpServletRequest 表示 HTTP 请求. Tomcat 按照 HTTP 请求的格式把 字符串 格式的请求转成了一个 HttpServletRequest 对象. 后续想获取请求中的信息(方法, url, header, body 等) 都是通过这个对象来获取.

🚓HttpServletResponse 表示 HTTP 响应. 代码中把响应对象构造好(构造响应的状态码, header, body 等)

🚓resp.getWriter() 会获取到一个流对象, 通过这个流对象就可以写入一些数据, 写入的数据会被构造成一个 HTTP 响应的 body 部分, Tomcat 会把整个响应转成字符串, 通过 socket 写回给浏览器

2.5 打包代码(war)

首先知道什么是war包: war 包是 java web 的程序, 里面除了会包含 .class 文件之外, 还会包含 HTML, CSS, JavaScript, 图片, 以及其他的 jar 包. 打成 war 包格式才能被 Tomcat 识别

在 pom.xml 中新增一个 packing 标签, 表示打包的方式是打一个 war 包,再新增一个 build 标签, 内置一个 finalName 标签, 表示打出的 war 包的名字是 HelloServlet
在这里插入图片描述
双击package
在这里插入图片描述
成功打包:
在这里插入图片描述

2.6 部署

把打包好的war包拷贝到tomcat的webapps目录中
在这里插入图片描述
启动 Tomcat , Tomcat 就会自动把 war 包解压缩
在这里插入图片描述
看到这个日志说明 Tomcat 已经正确识别了 ServletHelloWorld 这个 webapp

2.7 验证程序

通过浏览器访问 http://127.0.0.1:8080/hello_servlet/hello

在这里插入图片描述
注意:
🚙不是tomcat一启动,我们写的doGet就能执行,而是要收到路径匹配的GET请求才能执行!!
🚙URL 中的路径分成两个部分, 其中hello_servlet 为 Context Path,标识了一个webapp, hello 为 Servlet Path,标识当前请求要调用哪个Servlet类的doGet方法

三、更便捷的部署方式

手动拷贝 war 包到 Tomcat 的过程比较麻烦. 我们还有更方便的办法.
此处我们使用 IDEA 中的 Smart Tomcat 插件完成这个工作
下载smart Tomcat
在这里插入图片描述
配置 Smart Tomcat 插件
在这里插入图片描述
在这里插入图片描述
点击运行:
在这里插入图片描述
idea下方显示tomcat的日志
在这里插入图片描述

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

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

相关文章

炸裂!Sklearn 的 10 个宝藏级使用方法!

大家好,本次给大家介绍10个Sklearn方法,比较小众但非常好用。 1️.FunctionTransformer 虽然Sklearn中有很多内置的预处理操作可以放进pipeline管道,但很多时候并不能满足我们的需求。 如果是比较简单并且通过一个函数可以实现需求的情况&…

CCLink转Modbus TCP网关_CCLINK参数配置

CCLink转Modbus TCP网关(XD-ETHCL20),具有CCLINK主从站功能。主要用途是将各种MODBUS-TCP设备接入到CCLINK总线中。它可以作为从站连接到CCLINK总线上,也可以作为主站或从站连接到MODBUS-MTP总线上。 1、 配置网关的CCLINK参数&am…

WebSphere Liberty 8.5.5.9 (一)

WebSphere Liberty 8.5.5.9 (一) 安装 1. 从官网下载 WebSphere Liberty 8.5.5.9 2. 解压 解压到 D:\wlp-webProfile7-java8-8.5.5.93. 启动 D:\wlp-webProfile7-java8-8.5.5.9\wlp\bin>server start 正在启动服务器 defaultServer。 服务器 defaultServer 已启动。4. …

【Linux】虚拟机连不上外网 (ping www.baidu.com不通)

进入linux系统,打开终端,ping www.baidu.com 发现ping不通 首先我连接的是nat模式 查看是否连接上自己本机的网 切换root用户 使用 ifconfig 命令查看是eth0 还是 ens33 vi /etc/sysconfig/network-scripts/ifcfg-ens33 BOOTPROTOstatic ONBOOTyes …

大厂设计师必备的8款Sketch插件

每个设计师都渴望有一个高效的插件来提高他们的设计能力。设计插件有助于自动化工作流程,快速组织设计文件或简化内容创建。Sketch可以说是设计师知名的设计工具,特别是其资源社区拥有丰富的Sketch插件,大大提高了设计师的工作效率。本文让设…

notes_质谱蛋白组学数据分析基础知识

目录 1. 蛋白组学方法学1.1 液相-质谱法1) 基本原理2) bottom-up策略的基本流程 1.2 PEA/Olink 2. 质谱数据分析2.1 原始数据格式2.2 分析过程1)鉴定搜索引擎(质谱组学)重难点/潜在的研究方向 2)定量3)预处理 2.3 下游…

Apache RocketMQ - 概述

2022年,RocketMQ 5.0的正式版发布,相比于4.0版本而言,架构走向云原生化,并且覆盖了更多的业务场景。 如何从互联网时代演进到云时代? 1. 消息队列演进史 操作系统、数据库、中间件是基础软件的三驾马车,…

win环境Jenkins高级配置各种插件和启动jar包

今天分享Jenkins高级配置各种插件,在看此篇之前必须先了解上一篇博客内容,因为此篇是在上篇的基础上完善的: 一、git仓库的多分支选择 想要多分支选择部署,需要全局安装Git parameter 插件 1、点击入口 来到 2、点击进入 安装一…

5. HTML常用标签

5.1 标签语义 学习标签是有技巧的&#xff0c;重点是记住每个标签的语义。简单理解就是指标签的含义。即这个标签是用来干嘛的。 根据标签的语义&#xff0c;在合适的地方给一个最为合理的标签。可以让页面结构给清晰。 5.2 标题标签 <h1>-<h6>(重要) HTML提供了…

Git详解及常用命令

前言 Git 是一个分布式版本控制系统&#xff0c;用于跟踪和管理项目的代码变化。它由Linus Torvalds在2005年创建&#xff0c;现在是开源社区中最流行的版本控制工具之一。 国内码云地址&#xff1a;工作台 - Gitee.com 版本控制系统 (VCS)&#xff1a;Git 用于跟踪文件和目录…

【Git】第四篇:基本操作(理解工作区、暂存区、版本库)

Git 工作区、暂存区和版本库 工作区&#xff1a;就是我们创建的本地仓库所在的目录暂存区&#xff1a; stage或index&#xff0c;一般放在.git(可隐藏文件)目录下的index文件&#xff08;.git/index&#xff09;中&#xff0c;所以我们把暂存区有时候也叫做索引&#xff08;in…

DNS域名解析

目录 1.概述 1.1产生原因 1.2作用 1.3连接方式 1.4因特网的域名结构 1.4.1拓扑 1.4.2分类 1.4.3域名服务器类型划分 2. DNS域名解析过程 2.1分类 2.2解析图 2.2.2过程分析 3.搭建DNS域名解析服务器 3.1.概述 3.2安装软件 3.3bind服务中三个关键文件 3.4主配置…