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

Servlet 项目的创建和部署

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

Servlet

  • 1 Servlet 项目的创建
  • 2 Servlet 项目的部署
    • 2.1 本地部署
    • 2.2 Smart Tomcat 的配置

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, 如下图所示代表部署成功.
在这里插入图片描述

相关文章:

  • android获取进程内存使用信息、一键加速(内存清理)与进程重要级别解析
  • 面试题之HashMap与HashTable的区别
  • ASEMI整流桥SKBPC3516,SKBPC3516参数,SKBPC3516应用
  • java固定资产设备管理系统(源码开源分享)
  • 计算机网络学习笔记
  • Leetcode 84.柱状图中最大的矩形
  • 鸿蒙智联开发者平台项目的理解介绍
  • apollo配置中心
  • 华为CSE框架的一些知识点
  • vxe-table 将表格指定行设置颜色后,选中行、悬浮行样式失效解决。
  • 这些提高摸鱼效率的自动化测试技巧,提高打工人幸福感~
  • HelloSpring
  • Vite为啥如此之快
  • 从二值 Mask 获取外接矩形坐标
  • Tomcat 的本地部署及 SmartTomcat 的使用
  • [Vue CLI 3] 配置解析之 css.extract
  • Fabric架构演变之路
  • Solarized Scheme
  • SpiderData 2019年2月23日 DApp数据排行榜
  • spring + angular 实现导出excel
  • SpringBoot 实战 (三) | 配置文件详解
  • 安装python包到指定虚拟环境
  • 通过npm或yarn自动生成vue组件
  • 关于Android全面屏虚拟导航栏的适配总结
  • 容器镜像
  • ​TypeScript都不会用,也敢说会前端?
  • ​Z时代时尚SUV新宠:起亚赛图斯值不值得年轻人买?
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • #define 用法
  • #QT(智能家居界面-界面切换)
  • #周末课堂# 【Linux + JVM + Mysql高级性能优化班】(火热报名中~~~)
  • $.ajax中的eval及dataType
  • (bean配置类的注解开发)学习Spring的第十三天
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转)Linq学习笔记
  • (转)项目管理杂谈-我所期望的新人
  • *ST京蓝入股力合节能 着力绿色智慧城市服务
  • .NET Windows:删除文件夹后立即判断,有可能依然存在
  • .NET 设计一套高性能的弱事件机制
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .Net程序猿乐Android发展---(10)框架布局FrameLayout
  • .net中生成excel后调整宽度
  • @LoadBalanced 和 @RefreshScope 同时使用,负载均衡失效分析
  • @Tag和@Operation标签失效问题。SpringDoc 2.2.0(OpenApi 3)和Spring Boot 3.1.1集成
  • [ANT] 项目中应用ANT
  • [C#][DevPress]事件委托的使用
  • [C#]C# winform部署yolov8目标检测的openvino模型
  • [C++从入门到精通] 14.虚函数、纯虚函数和虚析构(virtual)
  • [Hadoop in China 2011] 蒋建平:探秘基于Hadoop的华为共有云
  • [hdu 3065] 病毒侵袭持续中 [AC自动机] [病毒特征码匹配]
  • [hdu2196]Computer树的直径
  • [jQuery]div滚动条回到最底部
  • [Machine Learning] Learning with Noisy Labels
  • [macOS] Mojave10.14 夜神安卓模拟器启动问题
  • [NOI2022] 众数 题解