当前位置: 首页 > news >正文

利用Servlet编写第一个“hello world“

利用Servlet编写第一个"hello world"

  • 🔎创建 Maven 项目
  • 🔎引入依赖
  • 🔎创建目录
  • 🔎编写代码
  • 🔎打包代码
  • 🔎部署
  • 🔎程序验证
  • 🔎结尾

🔎创建 Maven 项目


Maven 是一个构建工具
功能是帮助我们去构建, 测试, 打包一个项目

  • Java 中的构建工具包括
    • Ant(一款较老的构建工具)
    • Maven(当前比较主流的构建工具)
    • Gradle(一款较新的构建工具, 当前主要是 Android 生态使用)

首次创建 Maven 项目, Idea 会从互联网加载很多的依赖(需要花费一定的时间)

在这里插入图片描述

创建 Maven 项目后, 会有一个 pom.xml 配置文件

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

🔎引入依赖


Servlet 是 Tomcat 提供的 API(不是标准库提供)
表示需要额外下载 Servlet

登录 Maven 中央仓库
Maven 中央仓库

在搜索框中输入 servlet

在这里插入图片描述

确认后弹出如下界面

在这里插入图片描述

选择第一个 Java Servlet API

在这里插入图片描述

选择版本号为 3.1.0
Servlet 3.1.0 版本对应的 Tomcat 版本为 8.5

在这里插入图片描述
复制代码到 pom.xml 配置文件中

在这里插入图片描述

在 pom.xml 配置文件中手动输入 <dependencies></dependencies>

在这里插入图片描述

此处的 jar 包, 默认被下载在本地的隐藏目录中

在这里插入图片描述

🔎创建目录


创建 webapp

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

创建 WEB-INF

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

创建 web.xml

web.xml 应用于 Tomcat
pom.xml 应用于 Maven

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
复制如下代码到 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>

这里可能出现报红
但不会影响到程序

在这里插入图片描述

🔎编写代码


创建一个类

在这里插入图片描述
继承 HttpServlet
HttpServlet 来自 Servlet 的 jar 包(引入的依赖)

在这里插入图片描述

重写 doGet() 方法

  • HttpServletRequest, Http 请求
  • HttpServletResponse, Http 响应
  • doGet, 根据请求计算响应

一个服务器程序, 其基本工作流程大致如下

  • 读取请求并解析
  • 根据请求计算响应
  • 将响应返回到客户端

在这里插入图片描述

此处需要将 super.doGet(req, resp); 注释掉

因为 doGet() 方法会返回 405 页面

405 Method Not Allowed 表示方法不被允许

在这里插入图片描述
在这里插入图片描述

打印 hello world

  • 在服务器打印 hello world, System.out.println("hello world");
  • 在客户端打印 hello world, resp.getWriter().write("hello world");

在这里插入图片描述

为 HelloServlet 添加注解

在这里插入图片描述

代码编写完毕
此处并不需要编写 main 方法
这是因为上述代码并非独立运行, 而是插入到 Tomcat 中, 由 Tomcat 调用

🔎打包代码


由于程序不能独立运行(需部署到 Tomcat 运行)
因此需要将代码进行打包操作

类似于搬家, 需要先收拾物品(打包)
然后再将其搬运到新的地方(部署)

  • 在 Java 中, 使用的压缩包
    • jar(普通的 Java 程序打成 jar 包)
    • war (部署到 Tomcat 的程序打成 war 包)

点击右侧 Maven, 弹出如下界面

在这里插入图片描述

  1. 点击 Servlet_s
  2. 点击 Lifecycle
  3. 找到 package, 双击进行打包
  • 双击 package 后, 执行如下操作
    • 检查代码中是否存在一些依赖, 依赖是否下载好
    • 将代码进行编译, 生成一堆 .class 文件
    • 将 .class 文件, web.xml 按照一定格式进行打包

在这里插入图片描述

弹出如下界面表示打包成功

在这里插入图片描述

此时左侧界面会生成 target 目录

在这里插入图片描述

仔细查看发现此时的压缩包格式是 jar 包

将压缩包格式调整为 war 包
需要调整 pom.xml 描述生成的包的包格式

<packaging>war</packaging>复制到 pom.xml 即可

在这里插入图片描述

此处也可以修改打出的包的名称
将打出的包的名称修改为 hello_servlet
在这里插入图片描述

打出的 war 包, 且名称为 hello_servlet

在这里插入图片描述

🔎部署


部署
将打好的 war 包, 拷贝到 Tomcat 的 webapps 目录中

在这里插入图片描述
在这里插入图片描述

启动 Tomcat 后, 自动将 war 包进行了解压缩

在这里插入图片描述

🔎程序验证


浏览器效果

在这里插入图片描述

Tomcat 效果(服务器)

在这里插入图片描述

  • hello_servlet, 称为 Context Path / Application Path
    标识了一个 webapp(就是这个 webapp 的目录名 / war 包名)
    在这里插入图片描述
  • hello, 称为 Servlet Path
    • 标识当前请求调用哪个 Servlet 类的 doGet()
    • 一个 webapp, 可以有多个 Servlet
      在这里插入图片描述

🔎结尾

创作不易,如果对您有帮助,希望您能点个免费的赞👍
大家有什么不太理解的,可以私信或者评论区留言,一起加油

http://www.lryc.cn/news/90441.html

相关文章:

  • python 爬虫之js逆向爬虫详解
  • SpringBoot:WebSocket实现消息撤回、图片撤回
  • 输出指定日期区间内的所有天、周、月
  • 【线性规划模型】
  • android 12.0卸载otg设备开机不加载otg设备
  • 通过 Wacom 的 Project Mercury 提高远程办公效率
  • Linux-0.11 文件系统namei.c详解
  • 计算机网络学习笔记
  • Pod相关操作命令
  • 图灵完备游戏:信号计数 解法记录
  • 数据结构图的基础概念
  • 一场九年前的“出发”:奠基多模态,逐鹿大模型
  • 什么是url跳转漏洞?
  • 生物学经典blast比对算法,R语言和Python如何实现?
  • Android 开机动画支持mp4格式视频播放
  • 软考A计划-试题模拟含答案解析-卷十
  • Kafka入门(安装和SpringBoot整合)
  • gitLab相关命令
  • 一些查看日志时的常用命令
  • Javascript 的执行环境(execution context)和作用域(scope)及垃圾回收
  • CRDT协同算法
  • 近代中国的三次思想文化运动
  • 《地铁上的面试题》--目录
  • 在VIVADO下烧写ZC706板载FLASH的操作步骤
  • 第二期:链表经典例题(两数相加,删除链表倒数第N个节点,合并两个有序列表)
  • ESP32设备驱动-SHT35湿度传感器驱动
  • 如何快速判断GitLab 是否出现 OOM
  • Word查找和替换通配符(完全版)
  • Linux下socketpair系统API调用使用说明
  • 【Netty】Future 源码分析(十六)