JavaEE课程实践-Servlet的部署(tomcat服务器)

news2025/7/11 9:30:08

目录

Servlet简述

tomcat服务器的安装和运行

Servlet的部署

部署具体步骤

一、创建maven工程

二、创建Servlet类

三、导入相应jar包

四、编写Servlet代码

五、运行maven项目,启动tomcat服务器

 六、测试访问是否成功。


Servlet简述

Servlet 是 Java EE 技术的一部分,它是一种在 Web 服务器中运行的 Java 类,或者说是运行在web服务器上的应用程序,用于处理来自客户端的 HTTP 请求和响应。

Servlet 主要用于生成动态 Web 内容,它们可以与 Web 服务器(例如Tomcat)一起使用,通过 Web 容器来处理 HTTP 请求和响应。

Servlet 的主要功能包括:

  • 接收来自客户端的 HTTP 请求。
  • 读取请求参数、请求头信息、cookies 等数据。
  • 处理请求并生成响应数据。
  • 将响应数据发送回客户端,比如 HTML 页面、JSON 数据等。

tomcat服务器的安装和运行

对于tomcat的安装和运行,我在另一篇博客已有说明和使用演示=>tomcat介绍和使用<=

 ps: tomcat的安装和运行非常简单,只需要下载安装包,解压即用。

Servlet的部署

需求:创建一个servlet,将此servlet部署到tomcat服务器上,并能够通过URL访问到。

说明:在此使用maven项目构建工具作为基础环境进行编写部署。 

至于maven的介绍和使用,我在另一篇博客已有详解=>maven入门到进阶<=

使用maven的好处

不使用maven:对于此测试部署,如果不使用maven,我们需要自己到网页上下载需要的jar包并导入到项目中,自己找的jar包版本不一,真假难辨,并且编写完servlet后我们还需要手动将servlet代码编译成字节码,手动部署到tomcat的webapps目录中,比较繁琐。

使用maven:我们如果使用maven,导入jar包时仅仅需要在pom文件中编写jar包对应坐标即可导入,并且可以在pom文件中引入maven插件,我们只需要执行对应命令,maven就会自动将项目部署到tomcat服务器上。

部署具体步骤

一、创建maven工程

如果使用的编码工具是:IntelliJ IDEA,其中内置了maven,可以直接使用内置的maven,或者自己到设置中配置自己的也是没有问题。

查看和配置maven:进入idea设置,搜索maven,如下图 (在此直接使用内置默认的maven)

 创建过程  

二、创建Servlet类

三、导入相应jar包

 在项目的pom.xml中编写 

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mh</groupId>
  <artifactId>servlet_demo</artifactId>
  
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  
  <name>servlet_demo Maven Webapp</name>
  <url>http://maven.apache.org</url>
  
  <!-- 依赖管理 -->
  <dependencies>
	
	<!-- 用于单元测试 -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
	
	<!-- servlet相关工具包 -->
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>4.0.1</version>
      <scope>provided</scope>
    </dependency>

  </dependencies>
  
  <!--  tomcat插件 -->
  <build>
    <finalName>servlet_demo</finalName>
    <plugins>
      <plugin>
        <groupId>org.apache.tomcat.maven</groupId>
        <artifactId>tomcat7-maven-plugin</artifactId>
        <version>2.2</version>
        <configuration>
          <path>/</path> <!-- 配置访问根路径 -->
        </configuration>
      </plugin>
    </plugins>
  </build>
  
</project>

四、编写Servlet代码

在此使用注解的形式配置。

 代码说明:

(0)在WebServlet注解中书写当前servlet的访问路径。 

(1)首先需要我们自定义创建的类继承HttpServlet类,重写其中的doGet()和doPost()方法,用于接收处理前端的get和post的请求。

(技巧:快捷键alt + insert,选择override methods后,选择需要重写的方法)

(2)由于get 和 post 处理参数的逻辑相同,所以我们在doPost中调用doGet方法即可。避免代码重复。

(3)doGet中编写当接口被访问时的处理逻辑和响应。

自定义类中编写 

package controller;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

/**
 * Date:2023/3/1
 * author:zmh
 * description:
 **/

@WebServlet("/my_servlet") // 自定义接口访问路径
public class MyController extends HttpServlet {
    
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("接口被访问...");
        resp.setContentType("text/html;charset=utf-8");
        PrintWriter writer = resp.getWriter();
        writer.write("访问成功!");
    }

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        this.doGet(req, resp);
    }
}

五、运行maven项目,启动tomcat服务器

说明:因为在pom.xml文件中引入了插件:<tomcat7-maven-plugin>,当我们运行此maven项目的时候,此插件会自动的帮我们将servlet部署到tomcat服务器上并开启tomcat服务器。免去了我们手动将servlet放到tomcat的webapps目录下部署。

运行方式一: 命令行=> mvn tomcat7:run

打开命令行窗口---进入项目根目录下,执行mvn tomcat7:run 

 

 运行方式二、使用maven helper 插件

 如果不想每次都输入命令,我们可以在Intellij IDEA中安装插件 maven helper。

安装插件以后,我们在项目任意位置右键,选择Run Maven ==> tomcat7:run

 六、测试访问是否成功。

我们通过访问自定义的接口路径来判断此servlet是否成功部署到tomcat服务器上。

至此,接口访问通过,测试成功...

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第六章:多线程

第六章&#xff1a;多线程 6.1&#xff1a;程序、进程、线程基本概念 程序 程序program是为了完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码&#xff0c;静态对象。 进程 ​ 进程process是程序的一次执行过程&#xff0c;或是正在运行的一个程序。是一个…

vue3相比vue2性能上提升体现

vue3相比vue2&#xff0c;在 编译阶段&#xff0c;源码体积 响应式系统 都做了性能提升不以解决实际业务痛点的更新都是耍流氓1. ts的支持2. 移除了不常用的api,例如 过滤器 $on $off $once 实例方法 内联模板attribute $destroy3. 加了tree - shaking4. 移除了mixin缺点&#…

ESP32设备驱动-RFID-RC522模块驱动

RFID-RC522模块驱动 文章目录 RFID-RC522模块驱动1、RFID-RC522介绍2、硬件准备3、软件准备4、驱动实现1、RFID-RC522介绍 基于 NXP 的 MFRC522 IC 的 RC522 RFID 模块通常带有一个 RFID 卡标签和具有 1KB 内存的密钥卡标签。 最重要的是,它可以写一个标签,这样你就可以在里…

前端老赵一次给你讲透“微前端”架构

一、引言&#xff1a; 随着Web应用程序的规模和复杂度的不断增加&#xff0c;前端技术也在不断发展和演进。微前端是近年来兴起的一种前端架构模式&#xff0c;通过将大型Web应用程序拆分为小型、可独立开发和部署的模块&#xff0c;从而降低开发和维护的难度&#xff0c;同时…

【LeetCode与《代码随想录》】二叉树篇:做题笔记与总结-JavaScript版

文章目录代码随想录144. 二叉树的前序遍历94. 二叉树的中序遍历145. 二叉树的后序遍历102.二叉树的层序遍历226.翻转二叉树101. 对称二叉树104.二叉树的最大深度111.二叉树的最小深度222.完全二叉树的节点个数110.平衡二叉树257. 二叉树的所有路径404.左叶子之和513.找树左下角…

盘点曾经很火但消失了的8个软件

目录 1、飞信 3、暴风影音 4、千千静听 5、虾米音乐 6、快车下载 7、人人网 8、QQ农场 今天小编给大家分享曾经很火但消失了的8个软件&#xff0c;你都用过吗&#xff1f; 1、飞信 飞信是中国移动通信集团公司推出的一款短信、语音、视频通信应用程序。它于2007年推出&a…

JDK的动态代理(powernode 文档)(内含源代码)

JDK的动态代理&#xff08;powernode 文档&#xff09;&#xff08;内含源代码&#xff09; 源代码下载链接地址&#xff1a;https://download.csdn.net/download/weixin_46411355/87546086 一、动态代理 目录JDK的动态代理&#xff08;powernode 文档&#xff09;&#xff0…

什么是L1和L2正则化,以及它们有什么区别

一、L1和L2正则化是什么&#xff1f; 在防止过拟合的方法中有L1正则化和L2正则化&#xff0c;L1和L2是正则化项&#xff0c;又叫做惩罚项&#xff0c;是为了限制模型的参数&#xff0c;防止模型过拟合而加在损失函数后面的一项。 在二维的情况下&#xff0c;黄色的部分是L2和…

【云原生】rancher2.6部署MySQL—2023.03

文章目录概要1. 准备NFS服务器1.1 安装nfs1.2 创建挂载路径1.3 启动NFS服务2. 所有node节点上安装NFS服务3. rancher上部署MySQL3.1 创建PV3.2 创建PVC3.3 创建服务发现3.4 部署MySQL服务4. 测试概要 本文以单master节点为例&#xff0c;部署mysql&#xff0c;多master&#x…

Ubutun设置SSH远程登录

Ubutun设置SSH远程登录一、安装ssh-server二、配置ssh三、防火墙配置一、安装ssh-server 在需要远程登录的设备中安装ssh-server sudo apt update sudo apt install openssh-server出现提示时&#xff0c;输入密码&#xff0c;然后按Enter继续安装。安装完毕后&#xff0c;使…

2023金三银四应届生求职面试指南

一、应届生优势 划重点&#xff0c;一定要走校招;千万不要等毕业之后再想着找工作&#xff0c;在毕业前就要敲定落实;否则&#xff0c;就真的该焦虑了。要知道应届生的身份是一个很吃香的身份;只有应届生可以走校园招聘。 1、那校园招聘跟社会招聘有多大的差距?? 这么说吧&…

微信聊天的一个创新方向

开门见山&#xff0c;简单&#xff08;简陋&#xff09;展示下新的聊天界面&#xff1a; 注意到除了原本的发送键&#xff0c;多了几个别的按钮。为了对比方便&#xff0c;先放上当前的聊天方式&#xff1a; 给兄弟发消息时&#xff0c;点击发送键&#xff0c;显示的是如下发…

【华为机试真题详解 Python实现】静态扫描最优成本【2023 Q1 | 100分】

文章目录前言题目描述输入描述输出描述示例 1输入&#xff1a;输出&#xff1a;示例 2输入&#xff1a;输出&#xff1a;题目解析参考代码前言 《华为机试真题详解》专栏含牛客网华为专栏、华为面经试题、华为OD机试真题。 如果您在准备华为的面试&#xff0c;期间有想了解的…

【微信小程序项目实战】TodoList-环境配置(1)

目录前言简介环境配置TDesign图片页面文件文件基础配置app.wxssapp.jsontodo.json前言 本项目依据开源项目:点击前往 GITHUB 仓库 仿照搭设而成&#xff0c;并主要对其中原理以及方法做出详细分析解读&#xff0c;望大家多多支持原作者&#xff01; 简介 本项目将使用最新版…

C#开发的OpenRA的游戏主界面怎么样创建5

继续游戏主界面创建的主题, 前面已经介绍到怎么样创建一个OpenRA的帐号显示, 接着下来介绍中间显示新闻的消息窗口,如下图所示: 这个界面看起来比较简单,只有一个下拉按钮显示,但是背后的实现是比较复杂的。 因为它要实现一个对话框的窗口显示,那需要编写的代码和设计思…

字节3次都没裁掉的7年老测试。掌握设计业务与技术方案,打开上升通道!

前言职场中的那些魔幻操作&#xff0c;研发最烦的是哪个&#xff1f;“面对业务需求的时候&#xff0c;可能都听过这样一句话&#xff1a;这个很简单&#xff0c;直接开发&#xff0c;三天内上线&#xff1b;”朋友说&#xff1a;“产品听了流泪&#xff0c;测试见了崩溃&#…

Linux系统CPU占用率较高问题排查思路

作为工程师&#xff0c;在日常工作中我们会遇到 Linux服务器上出现CPU负载达到100%居高不下的情况&#xff0c;如果CPU 持续跑高&#xff0c;则会影响业务系统的正常运行&#xff0c;带来企业损失。对于CPU过载问题通常使用以下两种方式即可快速定位&#xff1a;方法一第一步&a…

STC单片机RTC时钟使用介绍

STC单片机RTC时钟使用介绍 ✨目前支持RTC功能的STC单片机型号只有带型号后面带TL\T的STC8以及STC8H8K64U B/C/D版本以及STC32G型号的单片机支持此功能.手上的STC8H8K64U单片机,B版本在实际测试中并没有成功,使用STC32G测试没有问题。 🎞使用STC8H8K64U B版本打印效果: 🔖…

springboot整合Quartz(1)

文章目录前言一 理论基础1.1 小顶堆(平衡二叉堆)1.2 小顶堆的存取方式1.2.1 插入顶堆元素1.2.2 删除顶堆元素1.3 任务与小顶堆1.3 时间轮算法二 Spring Boot集成JDK定时任务2.1 TaskQueue源码分析2.2 TimerThread源码分析2.2.1 Timer构造器2.2.2 Timer类中的执行方法2.2.3 Time…

深浅拷贝——利用模拟实现basic_string深入理解

深浅拷贝——利用模拟实现basic_string深入理解 一、深浅拷贝的基本概念 深拷贝和浅拷贝都是指在对象复制时&#xff0c;复制对象的内存空间的方式。 1.1 深浅拷贝的不同之处 浅拷贝是指将一个对象的所有成员变量都直接拷贝给另一个对象&#xff0c;包括指针成员变量&#…