Java 基础系列(二十一) --- Servlet 项目的搭建和部署

2023-10-27

背景知识: Tomcat 是一个 HTTP 服务器, 其开放了一组 API 可以供我们程序猿进行使用, 这组 API 就是 Servlet.
在这里插入图片描述

1 Servlet 项目的创建

1.1 创建一个 maven 项目
在这里插入图片描述
1.2 引入依赖
  在 pom.xml 加上以下依赖.
在这里插入图片描述
1.3 创建必要的目录和文件
  在 main 目录中创建一个 webapp 目录, 里面再创建 WEB-INF 目录, 里面再创建 web.xml 文件.
在这里插入图片描述
关于 web.xml 文件中的代码可以直接使用, 如下:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
            http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1"
         metadata-complete="false">
</web-app>

1.4 简单写一个代码测试一下

@WebServlet("/hello")
public class test extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.getWriter().write("hello test!");
    }
}

在这里插入图片描述
注意:
平常写的代码都有一个 main 方法, 程序运行就是从这个 main 方法来开始运行;
Servlet 里面, 代码中没有 main 方法, 而是 main 方法在 Tomcat 中, 咱们写的代码不是手动调用, 而是 Tomcat 选择合适的时机进行自动调用, 因此这里可以将 Servlet 理解为一个框架.

2 Servlet 项目的部署

2.1 本地部署

2.1.1 打包程序
在这里插入图片描述
2.1.2 本地下载 Tomcat
从官网下载 Tomcat到本地, Tomcat链接.
2.1.3 将 war 包拷贝到 Tomcat 的 webapps 目录中
在这里插入图片描述
2.1.4 验证程序是否正确工作
首先终端启动一下 Tomcat, 命令如下:
在这里插入图片描述
打开浏览器, 输入 URL, 如下图所示代表部署成功.
在这里插入图片描述
注意:
TestTomcat 就是咱们 war 包的名称, hello 就是@WebServlet(“/hello”) 注解中的内容.

2.2 Smart Tomcat 的配置

除了可以将程序部署到本地之外, IDEA 也有相应的插件, 可以将程序直接在 IDEA 上跑起来, 此插件就是 SmartTomcat, 操作步骤如下:
在这里插入图片描述
后续操作同样是打开浏览器, 输入 URL, 如下图所示代表部署成功.
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java 基础系列(二十一) --- Servlet 项目的搭建和部署 的相关文章

  • 在文本文件中写入多行(java)

    下面的代码是运行命令cmd并使用命令行的输出生成一个文本文件 下面的代码在 Eclipse 的输出窗口中显示了正确的信息 但在文本文件中只打印了最后一行 谁能帮我这个 import java io public class TextFile
  • 使用 JPA Criteria API 进行分页的总行数

    我正在系统中为实体实现 高级搜索 功能 以便用户可以使用该实体的属性上的多个条件 eq ne gt lt 等 来搜索该实体 我正在使用 JPA 的 Criteria API 动态生成 Criteria 查询 然后使用setFirstResu
  • 是什么决定了从 lambda 创建哪个函数式接口?

    请考虑这个例子 import java util function Consumer public class Example public static void main String args Example example new
  • 这个函数(for循环)空间复杂度是O(1)还是O(n)?

    public void check 10 for string i list Integer a hashtable get i if a gt 10 hashtable remove i 这是 O 1 还是 O n 我猜测 O n 但不是
  • org.apache.sling.api.resource,version=[2.3,3) -- 无法解析

    您好 我无法访问我的项目内容 我已经上传了从 CQ 访问内容所需的所有包 我唯一能看到的是 org apache sling api resource version 2 3 3 无法解析 这是否是异常的原因 如果是 请告诉我如何解决 中Q
  • Java AES 128 加密方式与 openssl 不同

    我们遇到了一种奇怪的情况 即我们在 Java 中使用的加密方法会向 openssl 生成不同的输出 尽管它们在配置上看起来相同 使用相同的键和 IV 文本 敏捷的棕色狐狸跳过了懒狗 加密为 Base64 字符串 openssl A8cMRI
  • wait() 在游戏中如何工作?

    在 playframework 的文档中here http www playframework org documentation 1 2 1 asynchronous已写 public static void loopWithoutBlo
  • JavaFX 中具有自定义内容的 ListView

    How i can make custom ListView with JavaFx for my app I need HBox with image and 2 Labels for each line listView 您可以通过查看
  • Java 文件上传速度非常慢

    我构建了一个小型服务 它从 Android 设备接收图像并将其保存到 Amazon S3 存储桶中 代码非常简单 但是速度非常慢 事情是这样的 public synchronized static Response postCommentP
  • Calendar.getInstance(TimeZone.getTimeZone("UTC")) 不返回 UTC 时间

    我对得到的结果真的很困惑Calendar getInstance TimeZone getTimeZone UTC 方法调用 它返回 IST 时间 这是我使用的代码 Calendar cal Two Calendar getInstance
  • 将 SignedHash 插入 PDF 中以进行外部签名过程 -workingSample

    遵循电子书第 4 3 3 节 PDF 文档的数字签名 https jira nuxeo com secure attachment 49931 digitalsignatures20130304 pdf 我正在尝试创建一个工作示例 其中 客
  • 使用 SQLITE 按最近的纬度和经度坐标排序

    我必须获得一个 SQLite SQL 语句 以便在给定初始位置的情况下按最近的纬度和经度坐标进行排序 这是我在 sqlite 数据库中的表的例句 SELECT id name lat lng FROM items EXAMPLE RESUL
  • Javafx过滤表视图

    我正在尝试使用文本字段来过滤表视图 我想要一个文本字段 txtSearch 来搜索 nhs 号码 名字 姓氏 和 分类类别 我尝试过在线实施各种解决方案 但没有运气 我对这一切仍然很陌生 所以如果问得不好 我深表歉意 任何帮助将不胜感激 我
  • IntelliJ - 调试模式 - 在程序内存中搜索文本

    我正在与无证的第三方库合作 我知道有一定的String存储在库深处的某个字段中的某处 我可以预测的动态值 但我想从库的 API 中获取它 有没有一种方法可以通过以下方式进行搜索 类似于全文搜索 full程序内存处于调试模式并在某个断点处停止
  • 欧洲中部时间 14 日 3 月 30 日星期五 00:00:00 至 日/月/年

    我尝试解析格式日期Fri Mar 30 00 00 00 CET 14至 日 月 年 这是我的代码 SimpleDateFormat formatter new SimpleDateFormat dd MM yyyy System out
  • Jersey 客户端请求中未设置 Content-Length-Header

    我正在使用 Jersey Client 访问网络服务 如下所示 response r accept MediaType TEXT PLAIN TYPE header content length 0 post String class 其中
  • 如何知道抛出了哪个异常

    我正在对我们的代码库进行审查 有很多这样的陈述 try doSomething catch Exception e 但我想要一种方法来知道 doSomething 抛出了哪个异常 在 doSomething 的实现中没有 throw 语句
  • ServletContainer 类未找到异常

    我无法再编译我的球衣项目 并且出现以下异常 GRAVE Servlet Project API threw load exception java lang ClassNotFoundException com sun jersey spi
  • 在 RESTful Web 服务中实现注销

    我正在开发一个需要注销服务的移动应用程序 登录服务是通过数据库验证来完成的 现在我陷入了注销状态 退一步 您没有提供有关如何在应用程序中执行身份验证的详细信息 并且很难猜测您在做什么 但是 需要注意的是 在 REST 应用程序中 不能有会话
  • GUI Java 程序 - 绘图程序

    我一直试图找出我的代码有什么问题 这个想法是创建一个小的 Paint 程序并具有红色 绿色 蓝色和透明按钮 我拥有我能想到的让它工作的一切 但无法弄清楚代码有什么问题 该程序打开 然后立即关闭 import java awt import

随机推荐

  • Character Encoding Issues(good!!!)

    Character Encoding Issues Questions Why What is the default character encoding of the request or response body Why does
  • 【Verilog-26】Net线路连接

    Net是结构描述中为线路连接 连线和接线 建立的模型 net的值是由net的驱动所决定的 驱动器可以是门 UDP 实例模块或者连续赋值语句的输出 语法 1 supply0和supply1类型的net变量分别具有逻辑值0和1 并可以为它定义驱
  • linuxfb简单说明

    framebuffer简介 Linux framebuffer dev fb 是用来屏蔽图形显示硬件的抽象层 如果不对硬件进行抽象屏蔽 不同硬件显卡 可能需要编写不同的驱动和应用程序 而引入framebuffer进行统一的抽象后 开发人员可
  • 【从零开始写博客】链表运用:链表的增删查改及反转(day3)

    代码随想录刷题60天 数组 day2 数组 day1 目录 链表概述 一 链表增删地初次理解 二 链表常见六个操作 三 链表的转置 总结 链表概述 链表是通过指针将一个个节点串起来的数据结构 其优点是增删方便 灵活性强 以下将结合leetc
  • Maven插件开发及Demo演示

    引言 maven不仅仅只是项目的依赖管理工具 其强大的核心来源自丰富的插件 可以说插件才是maven工具的灵魂 本篇文章将对如何自定义maven插件进行讲解 希望对大家有所帮助 背景 讲如何开发maven插件之前 不妨先来聊一下什么是mav
  • Spring: 事务传播机制

    文章目录 1 美图 2 Transactional 注解的属性信息 3 案例 3 1 建表 3 2 项目结构 3 3 配置 3 4 config 3 5 实体类 3 5 业务类 3 6 测试类 3 REQUIRED 4 NOT SUPPOR
  • python接口自动化(十二)--https请求(SSL)(详解)

    简介 本来最新的requests库V2 13 0是支持https请求的 但是一般写脚本时候 我们会用抓包工具fiddler 这时候会 报 requests exceptions SSLError SSL CERTIFICATE VERIFY
  • MySQL简单命令和SELECT查询,给字段起别名【MySQL数据库】

    Java养成计划 学习打卡第六十四天 内容导航 数据库的相关操作 数据库的导入 查看导入数据库中的表 查看表中的数据 查看表的基本结构 简化 查看表的结构 详细 查看mysql数据库的版本号 查询当前使用的数据库 退出mysql SQL查询
  • C#常见的两种错误

    一 WindowsFormsApplication2 Form1 不包含 Form1 Load 的定义 并且找不到可接受类型为 WindowsFormsApplication2 Form1 的第一个参数的扩展方法 Form1 Load 是否
  • 小程序上传发布

    1 上传发布 一个小程序从开发完到上线一般要经过 预览 gt 上传代码 gt 提交审核 gt 发布等步骤 2 预览 使用开发者工具可以预览小程序 帮助开发者检查小程序在移动客户端上的真实表现 点击开发者工具顶部操作栏的预览按钮 开发者工具会
  • Linux终端退出程序不退出解决方案(nohup/screen)

    终端异常退出后 后台进程不关闭的解决办法 1 使用nohup命令 nohup
  • android:installLocation简析

    文章来源 http www cnblogs com Lefter archive 2012 03 07 2383962 html 在Froyo android 2 2 API Level 8 中引入了android installLocat
  • vue 动态面包屑 通过面包屑带参数跨级跳转 面包屑动态标题 多级路由嵌套设置默认页面和隐藏左侧导航栏显示

    面包屑 实现效果 可以通过面包屑进行跨级跳转 以下为我的面包屑组件 breadcrumb vue
  • React:select受控

    import React from react class Selector extends React Component constructor super this state val
  • pandas安装踩坑

    pandas安装踩坑 已有环境 安装问题 最后 重点来了 解决方案 总结 已有环境 win7 python3 8 1 原来用的python2 6 pip装的时候它说快不维护更新了 就把python3也给装上了 pip 20 0 2 安装问题
  • HSQLDB 试用

    1 先试用服务器模式 1 下载hsqldb 解压并进入该目录 创建data目录 2 创建数据库 java cp lib hsqldb jar org hsqldb Server database 0 file test1 dbname 0
  • 机器学习-情感分析小案例

    对发帖情感进行分析 字段说明 Announce ID字段代表用户ID User Name字段代表用户名 topic字段代表发帖主题 body字段代表发帖内容 post type字段代表发帖话题是否与工作相关 sentiment字段表明发帖情
  • Layui框架标签展示,用复选框动态控制标签增加和删除

    比较冷门的功能 纪录一下 先看效果图 看大家有没有类似的需求可以照搬 1表格展示 2 表单添加 3 复选框控制添加和取消生成标签 讲一下逻辑 点击新建标签 显示or隐藏标签选择框 标签列表是调用后台接口动态生成的 上代码 1 div cla
  • Python中的import

    Python中的import 第三方包 如selenium 放置在 python27 Lib site packages 安装 python setup py install python 自带的包 unittest json 放置在 py
  • Java 基础系列(二十一) --- Servlet 项目的搭建和部署

    背景知识 Tomcat 是一个 HTTP 服务器 其开放了一组 API 可以供我们程序猿进行使用 这组 API 就是 Servlet Servlet 1 Servlet 项目的创建 2 Servlet 项目的部署 2 1 本地部署 2 2