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

创建web后端程序(servlet程序搭建)

目录

一、Servlet概述

二、创建servlet程序

1.创建类继承HttpServlet

2.重写HttpServlet类中 service、destroy、init方法

3.重新启动服务器


一、Servlet概述

Server Applet的简称,用Java编写的服务器端的程序。它运行在web服务器中,web服务器负责Servlet和客户的通信以及调用Servlet方法。

前端页面、服务器和后端javaEE程序关系图:

 Servlet的作用
1.接收用户发送的请求数据
2.调用其他的java程序来处理请求
3.根据处理结果,将结果响应给客户端。

二、创建servlet程序

1.创建类继承HttpServlet

在src下先创建包,在servlet包下创建一个登录类,继承HttpServlet类,于是我们创建的类就具备了servlet的程序功能,启动服务器时就会加载继承HttpServlet的类。由于HttpServlet是javaEE的类,需要导入tomcat中的servlet-api.jar包。

在安装Tomcat文件里的bin目录中:

复制bin目录中的 servlet-api.jar 包到项目中的web目录下:

 

 

 加载jar包:

 

 这样,我们的类成功的继承了import javax.servlet.http.HttpServlet包下的HttpServlet类。

2.重写HttpServlet类中 service、destroy、init方法

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;public class LoginServlet extends HttpServlet {/*无参构造方法,初始化创建的对象在第一次访问这个Servlet时或服务器启动时被调用了,只调用了一次*/public LoginServlet() {System.out.println("LoginServlet无参构造方法");}/*提供服务的,每次访问servlet程序,service方法都会执行, 多次执行*/@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {System.out.println("service");}/*在服务器关闭时会被调用,可以在服务器关闭时执行一些必要的操作,此方法可以在我们的类中不重写,会调用父类中destroy()*/@Overridepublic void destroy() {System.out.println("destroy");}/*在构造方法执行完成后,紧接着来执行,用来初始化servlet,只调用了一次,如果没有初始化的需要,也可以不进行重写,那么会调用父类中init().*/@Overridepublic void init(ServletConfig config) throws ServletException {System.out.println("init");}
}

 3.在web.xml文件中配置servlet

<?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_4_0.xsd"version="4.0"><!--   配置servlet类的地址 --><servlet><servlet-name>loginServlet</servlet-name><!-- 定义servlet对象名字 -->
<!--        配置servlet类地址,在第一次或启动服务器时,由服务器通过反射机创建次servlet对象制默认是第一次访问servlet时创建对象还可以配置在启动时创建对象<load-on-startup>1</load-on-startup> 值>=0
--><servlet-class>com.yyds.webback2.servlet.LoginServlet</servlet-class><!--        <init-param>-->
<!--            <param-name>count</param-name>-->
<!--            <param-value>22</param-value>-->
<!--        </init-param>--><!--        <load-on-startup>1</load-on-startup> --></servlet>
<!--    为指定name的servlet配置一个供前端进行访问映射地址--><servlet-mapping><servlet-name>loginServlet</servlet-name><url-pattern>/login</url-pattern></servlet-mapping>
</web-app>

补充:<init-param>中的值可以在init方法中拿到:System.out.println(config.getInitParameter("count"));

3.重新启动服务器

访问 localhost:8080/webBack2/login

可在idea输出台观察构造方法和重写方法的调用顺序。 

相关文章:

创建web后端程序(servlet程序搭建)

目录 一、Servlet概述 二、创建servlet程序 1.创建类继承HttpServlet 2.重写HttpServlet类中 service、destroy、init方法 3.重新启动服务器 一、Servlet概述 Server Applet的简称&#xff0c;用Java编写的服务器端的程序。它运行在web服务器中&#xff0c;web服务器负责…...

【章节1】git commit规范 + husky + lint-staged实现commit的时候格式化代码

创建项目我们不多说&#xff0c;可以选择默认的&#xff0c;也可以用你们现有的项目。注意章节1和章节2请一起看&#xff01; 章节1: commit规范 husky lint-staged格式化代码 章节2: husky 检测是否有未解决的冲突 预检查debugger 自动检查是否符合commit规范 前言&#x…...

【入门】拐角III

【入门】拐角III Description 输入整数N&#xff0c;输出相应方阵。 Input 一个整数N。&#xff08; 0 < n < 10 ) Output 一个方阵&#xff0c;每个数字的场宽为3。 Sample Input 1 5 Sample Output 1 5 5 5 5 55 4 4 4 45 4 3 3 35 4 3 2 25 4…...

如何使用 Fail2ban 防止对 Linux 的暴力攻击?

在当今数字化世界中&#xff0c;网络安全成为了一个极其重要的话题。Linux 作为一种广泛使用的操作系统&#xff0c;也面临着各种网络攻击的风险&#xff0c;包括暴力攻击、密码破解和恶意登录等。为了保护 Linux 系统的安全&#xff0c;我们可以使用 Fail2ban 这样的工具来防止…...

2023年,真的别裸辞....

作为IT行业的大热岗位——软件测试&#xff0c;只要你付出了&#xff0c;就会有回报。说它作为IT热门岗位之一是完全不虚的。可能很多人回说软件测试是吃青春饭的&#xff0c;但放眼望去&#xff0c;哪个工作不是这样的呢&#xff1f;会有哪家公司愿意养一些闲人呢&#xff1f;…...

规则引擎架构-基于easy-rules

目录 概念理解实例和编码抽象出2条规则简单的规则引擎事实1的处理事实2的处理 easy-rules 规则的抽象和执行事实描述规则的抽象默认的规则 动态代理执行规则和动作规则的执行&#xff1a;org.jeasy.rules.core.DefaultRulesEngine#doFirepublic class RuleProxy implements Inv…...

【数据结构】第七周

目录 稀疏矩阵快速转置 三元组的矩阵加法 九宫格数独游戏 数组主元素 螺旋数字矩阵 蛇形矩阵 数组循环右移K位 稀疏矩阵快速转置 【问题描述】 稀疏矩阵的存储不宜用二维数组存储每个元素&#xff0c;那样的话会浪费很多的存储空间。所以可以使用一个一维数组存…...

人体三维重构论文集合:awesome 3d human reconstruction

A curated list of related resources for 3d human reconstruction. Your contributions are welcome! Contents papers AIGCnerf or pifugeo fusionphoto3D human whole body3D human...

揭秘Redis持久化原理,探索fork与Copy-on-Write的魔法!

大家好&#xff0c;我是小米&#xff0c;今天我将和大家一起探索Redis持久化原理中的两个关键概念&#xff1a;fork和Copy-on-Write。这两个概念对于理解Redis的数据持久化机制至关重要。让我们一起来揭开这些技术的神秘面纱吧&#xff01; Redis持久化简介 在开始之前&#…...

应届生如何提高职场竞争能力

摘要&#xff1a; 应届生面对竞争激烈的职场&#xff0c;需要不断提高自身的职业素养和竞争能力&#xff0c;才能在激烈的竞争中脱颖而出。本文从积极心态的培养、专业知识的优化、职业规划的制定、团队协作的加强和自我拓展的开展五个方面&#xff0c;提出了提高应届生职场竞争…...

ISIS 实验

(1)拓扑图 2&#xff09;需求&#xff1a; -实现PC1和PC2的通信 3&#xff09;配置步骤&#xff1a; -配置接口IP地址 -开启ISIS---类似于在OSPF中创建进程 -配置NET地址---类似于在OSPF中创建区域&#xff0c;指定Router-id -在接口上启用ISIS--类似于在OSPFv2中用ne…...

国产系统:麒麟之人大金仓数据库部署

一、基本信息和资源 1.1 查看服务器信息 [root7PGxjKPL4 ~]# cat /etc/*release Kylin Linux Advanced Server release V10 (Sword) DISTRIB_IDKylin DISTRIB_RELEASEV10 DISTRIB_CODENAMEjuniper DISTRIB_DESCRIPTION"Kylin V10" DISTRIB_KYLIN_RELEASEV10 DISTRI…...

flink1.17.0 集成kafka,并且计算

前言 flink是实时计算的重要集成组件&#xff0c;这里演示如何集成&#xff0c;并且使用一个小例子。例子是kafka输入消息&#xff0c;用逗号隔开&#xff0c;统计每个相同单词出现的次数&#xff0c;这么一个功能。 一、kafka环境准备 1.1 启动kafka 这里我使用的kafka版本…...

【华为OD机试】数组组成的最小数字【2023 B卷|100分】

【华为OD机试】-真题 !!点这里!! 【华为OD机试】真题考点分类 !!点这里 !! 题目描述: 给定一个整型数组,请从该数组中选择3个元素组成最小数字并输出 (如果数组长度小于3,则选择数组中所有元素来组成最小数字)。 输入描述: 一行用半角逗号分割的字符串记录的整型数…...

Exponential Loss 中的关于indicator 函数的一个恒等式

− x y 2 I ( x ≠ y ) − 1 -xy2\mathbf{ I}(x \ne y)-1 −xy2I(xy)−1 其中 I \mathbf{ I} I 是 indicator 函数&#xff0c; 定义域 为True &#xff0c;函数值为 1 反之为 0 x,y 都 可以取值 {-1,1} 证明过程见下表&#xff1a; xy左式右式-1-1-1-111-1-1-11111-111...

【机器学习】浅析过拟合

过度拟合 我们来想象如下一个场景&#xff1a;我们准备了10000张西瓜的照片让算法训练识别西瓜图像&#xff0c;但是这 10000张西瓜的图片都是有瓜梗的&#xff0c;算法在拟合西瓜的特征的时候&#xff0c;将西瓜带瓜梗当作了一个一般性的特征。此时出现一张没有瓜梗的西瓜照片…...

尝试在UNet的不同位置添加SE模块

目录 &#xff08;1&#xff09;se-unet01&#xff08;在卷积后&#xff0c;下采样前&#xff0c;添加SE模块&#xff09; &#xff08;2&#xff09;se-unet02&#xff08;在卷积后&#xff0c;上采样前&#xff0c;添加SE模块&#xff09; &#xff08;3&#xff09;se-un…...

JVM垃圾回收篇之相关概念和算法

垃圾回收相关概念 什么是垃圾 垃圾就是指在运行程序中没有任何指针指向的对象,这个对象就是需要被回收掉的垃圾,如果不及时进行清理,越积越多就会导致内存溢出. 为什么需要GC 不进行回收,早晚会导致内存溢出,Java自动管理垃圾回收,不需要开发人员手动干预,这就有可能导致开…...

(学习日记)2023.04.27

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…...

亚马逊CPC广告每日该怎么调整?

01 CPC广告需要每日调整吗&#xff1f; 其实&#xff0c;亚马逊广告是不建议每天都做过多调整的。 为什么呢&#xff1f;调整太频繁了&#xff0c;看不到每天调整的结果是不是&#xff1f; 什么时候需要调整呢&#xff1f; 就是广告指标&#xff0c;比如说曝光、点击、转化率情…...

从‘相框’与‘相片’说起:彻底搞懂MFC文档/视图架构与消息路由(含实战避坑)

从相框到相片&#xff1a;深入解析MFC文档/视图架构的设计哲学与实战应用 在Windows桌面应用开发的历史长河中&#xff0c;MFC&#xff08;Microsoft Foundation Classes&#xff09;作为经典的C框架&#xff0c;其独特的文档/视图架构一直是开发者又爱又恨的设计。想象一下相框…...

QLoRA微调Mistral-7B实战:4-bit量化+LoRA端到端跑通指南

1. 这不是理论课&#xff0c;是能跑通的实操手册&#xff1a;QLoRA微调Mistral-7B到底在做什么 你点开这篇&#xff0c;大概率正卡在某个环节&#xff1a;Colab里 model.generate() 报错OOM&#xff0c; bitsandbytes 安装失败后反复重装&#xff0c;或者训练跑了一小时发现…...

zotero-addons:Zotero生态扩展框架的模块化设计与架构解析

zotero-addons&#xff1a;Zotero生态扩展框架的模块化设计与架构解析 【免费下载链接】zotero-addons Zotero Add-on Market | Zotero插件市场 | Browsing and installing plugins within Zotero 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-addons 在学术研究…...

5分钟掌握Pandoc:终极文档格式转换神器完全指南

5分钟掌握Pandoc&#xff1a;终极文档格式转换神器完全指南 【免费下载链接】pandoc Universal markup converter 项目地址: https://gitcode.com/gh_mirrors/pa/pandoc 你是否曾经为文档格式转换而烦恼&#xff1f;需要将Markdown转换为Word&#xff0c;或者将HTML转换…...

AI Agent培训如何撬动企业人效革命:3个已验证的行业应用范式与5步落地法

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AI Agent培训如何撬动企业人效革命&#xff1a;3个已验证的行业应用范式与5步落地法 AI Agent并非通用智能体&#xff0c;而是经领域知识注入、任务流程对齐与反馈闭环训练后具备自主决策边界的“数字员…...

10分钟掌握BodyApps 3D Body Visualiser高级技巧:自定义皮肤、视角控制与参数联动

10分钟掌握BodyApps 3D Body Visualiser高级技巧&#xff1a;自定义皮肤、视角控制与参数联动 【免费下载链接】bodyapps-viz 3D body visualizer component for #bodyapps project 项目地址: https://gitcode.com/gh_mirrors/bo/bodyapps-viz BodyApps 3D Body Visuali…...

Kotlin 跨平台 SqliteNow 全平台数据持久化方案

Kotlin 跨平台 SqliteNow 全平台数据持久化方案1. 环境与依赖配置1.0 创建一个Kotlin 多平台项目1.1 版本声明&#xff08;libs.versions.toml&#xff09;1.2 项目级插件配置&#xff08;build.gradle.kts&#xff09;1.3 模块级依赖配置&#xff08;app/shared/build.gradle.…...

终极指南:3分钟掌握跨平台网络资源下载神器res-downloader

终极指南&#xff1a;3分钟掌握跨平台网络资源下载神器res-downloader 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 还在为…...

Rust异步编程深度实战

Rust异步编程深度实战:从async/await到Tokio运行时原理 作者:Crown_22 | AI Agent & Hermes Agent 桌面程序开发者 前言:为什么Rust异步编程让人又爱又恨? 写了两年Rust异步代码,我最大的感受是:Rust的异步编程模型是所有语言中最"较真"的。它不允许你偷懒…...

SEED-Lab7 XSS攻击实验(Elgg)

SEED-Lab7 XSS攻击实验(Elgg) 文章目录 SEED-Lab7 XSS攻击实验(Elgg)文章目录实验环境实验内容实验步骤DNS SetupTask 1: Posting a Malicious Message to Display an Alert WindowTask 2: Posting a Malicious Message to Display CookiesTask 3: Stealing Cookies from the…...