Java开发之ServLet详解

article/2025/11/10 21:18:37

一、什么是ServLet?

serverLet是javaEE中运行于服务器端的,用于接收和响应HTTP协议的请求的程序。

二、ServLet的三种实现方式

1、实现ServLet接口

步骤:

(1)实现ServLet接口

(2)重写包括service()等五个方法

(3)在web.xml中声明和配置ServLet

(4)部署该web项目并通过浏览器访问

2、继承GenericServLet抽象类

步骤:

(1)继承GenericServLet类

(2)重写service()方法

(3)在web.xml中声明和配置ServLet

(4)部署该web项目并通过浏览器访问

注意:GenericServLe抽象类是ServLet接口的实现类,GenericServLet已经帮我们实现好了包括init()、destory()等方法,我们只需要重写service()方法即可。

3、继承HTTPServLet类(常用)

步骤:

(HTTPServLet类

(2)重写doGet()方法和doPost()方法

(3)在web.xml中声明和配置ServLet

(4)部署该web项目并通过浏览器访问

注意:HTTPServLet是GenericServLet的派生类,其将GenericServLet的service()方法重写为了doGet()方法和doPost()方法,因此,我们只需要重写doGet()和doPost()方法即可,但由于这两个方法的方法体通常都是一样的,因此我们只需要写一个方法体即可,另一个方法的方法体直接调用写好的那个函数即可。

(*)web.xml中ServLet的配置方法

主要添加和配置<servLet>标签和<servLet-mapping>标签

三、ServLet的执行过程

1、客户端浏览器发起HTTP请求

2、Tomcat服务器解析请求地址url,找到对应的web应用程序

3、找到该web应用程序的web.xml文件

4、继续解析请求资源地址的url,找到对应的应用资源

5、执行service()方法(HTTPServLet是执行doGet()和doPost()中的代码),响应个客户端浏览器。

四、ServLet的三种映射方式

1、具体名称的方式

特点:访问资源路径必须和映射配置完全相同。

<!--具体名称格式--><servlet><servlet-name>servLet01</servlet-name><servlet-class>com.wangyang.ServLet.Serv01</servlet-class></servlet><servlet-mapping><servlet-name>servLet01</servlet-name><url-pattern>/servLet01</url-pattern></servlet-mapping>

2、'/'开头+通配符方式

特点:只要考虑复合目录结构即可,不必考虑结尾形式。

<!--通配符格式+固定结尾格式--><servlet><servlet-name>servLet01</servlet-name><servlet-class>com.wangyang.ServLet.Serv01</servlet-class></servlet><servlet-mapping><servlet-name>servLet01</servlet-name><url-pattern>/serv/*</url-pattern><!--只要资源url以/serv/开头的都可访问--></servlet-mapping>

3、通配符+固定格式结尾的方式

特点:只要复合固定结尾格式即可,不必考虑前面。

<!--通配符格式+固定结尾格式--><servlet><servlet-name>servLet01</servlet-name><servlet-class>com.wangyang.ServLet.Serv01</servlet-class></servlet><servlet-mapping><servlet-name>servLet01</servlet-name><url-pattern>*.do</url-pattern><!--以.do结尾的资源url都可以访问--></servlet-mapping>

五、ServLet的线程安全问题

servLet是线程不安全的,所以,对于类成员的使用需要加同步锁,即将使用类成员的地方加上synchronized关键字抽取为同步代码块即可,或者直接将类成员定义与service方法(doGet方法和doPost方法)中即可。

六、servLet的创建时机

1、第一次访问时创建

优势:减少了对服务器内存的浪费,提高服务器启动的效率。

弊端:如果有些应用需要在应用加载时完成初始化,无法完成。

2、服务器启动时创建

优势:提前创建号对象,提高了首次执行的效率,可以完成一些应用加载时的操作。

弊端:对服务器内存占用比较多,影响服务器启动的效率。

设置方法:

在<servLet>标签中添加<load-on-startup>num</load-on-startup>即可,num为一个整数,num为正整数时表示服务器启动时创建,num为负整数或不写时表示第一次使用时创建。

    <servlet><servlet-name>servLet01</servlet-name><servlet-class>com.wangyang.ServLet.Serv01</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>servLet01</servlet-name><url-pattern>/servLet01</url-pattern></servlet-mapping>

七、Tomcat默认的ServLet

 默认ServLet是由服务器提供的一个ServLet,它配置在Tomcat的conf目录中的web.xml文件中

客户端发送HTTP请求时,首先会在web项目中的web.xml文件中查找映射配置,若查找的到则执行,查找不到则去找默认的ServLet,由默认的ServLet进行处理。

八、ServletConfig

1、ServletConfig简介

介绍:ServLetConfig是ServLet的配置参数对象,在ServLet的规范中,允许每一个ServLet都提供一些初始化的配置,所以,每一个ServLet都有一个自己的ServLetConfig。

作用:在ServLet初始化时,把一些配置信息传递给Servlet。

生命周期:和Servlet的声明周期相同。

2、ServletConfig配置方式

在web.xml文件中的<servlet>标签中,通过<init-param>标签来配置,有两个子标签:

(1)<param-name>:带表初始化参数的key。

(2)<param-value>:带表初始化参数的value.

示例:

    <servlet><servlet-name>servLet01</servlet-name><servlet-class>com.wangyang.ServLet.Serv01</servlet-class><!--配置ServLetConfig--><init-param><param-name>encoding</param-name>  <!--设置编码为utf-8--><param-value>UTF-8</param-value></init-param><init-param><param-name>desc</param-name>  <!--设置描述信息--><param-value>this is ServLet01</param-value></init-param></servlet>

3、ServletConfig的常用方法

 4、ServletConfig的使用(在servlet对象中使用)

(1)首先声明ServletConfig对象

(2)通过init()方法,来对ServletConfig对象进行赋值(有服务器自动进行赋值)

(3)在Service()方法(HTTPServlet中为doGet和doPost方法)中调用ServletConfig对象方法进行操作。

package com.wangyang.ServLet;import javax.servlet.*;
import java.io.IOException;public class Serv01 implements Servlet {//1、声明ServletConfig对象private ServletConfig config ;@Overridepublic void init(ServletConfig servletConfig) throws ServletException {//2、通过init方法对ServletConfig对象进行初始化this.config=servletConfig;}@Overridepublic ServletConfig getServletConfig() {return null;}@Overridepublic void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {//3、通过调用ServletConfig对象的方法进行使用,如:输出其描述信息:String string = this.config.getInitParameter("desc");System.out.println(string);}@Overridepublic String getServletInfo() {return null;}@Overridepublic void destroy() {}
}

操作结果: 

九、ServletContext

1、ServletContext简介

介绍:ServletContext是应用上下文对象(应用域对象),每一个应用中只有一个ServletContext对象。

作用:可以配置和获得应用的全局初始化参数,可以实现Servlet之间的数据共享。

生命周期:应用一加载时被创建,应用被停止时销毁。

 2、ServletContext的配置方式

在<web-app>标签中,通过<context-param>标签来配置,有两个子标签:

(1)<param-name>:代表全局初始化参数的key。

(2)<param-value>:代表全局初始化参数的value。

例如:

 <!--配置全局ServletContext--><context-param><!--设置全局编码格式--><param-name>globalEncoding</param-name><param-value>UTF-8</param-value></context-param><context-param><!--设置全局描述信息--><param-name>desc</param-name><param-value>this is Context</param-value></context-param>

3、ServletContext的常用方法

步骤:

(1)通过ServletConfig对象的getServletContext()方法或者直接调用本身的getServletContext()方法获取ServletContext对象。

(2)通过调用ServletContext对象来使用其方法。

常用的方法有:

(1)与配置相关的方法

 (2)与全局数据相关的方法:


http://chatgpt.dhexx.cn/article/YSf0K1AA.shtml

相关文章

Serverlet的生命周期

1.Servlet的生命周期 Servlet没有main()方法&#xff0c;不能独立运行&#xff0c;它的运行完全由Servlet引擎来控制和调度。所谓生命周期 &#xff0c;指的是servlet容器何时创建servlet实例、何时调用其方法进行请求的处理、何时并销毁其实例的 整个过程。其完整的周期包括…

VRRP协议以及关联Track详解

一、实验 详细解释可以直接查看下面连接&#xff0c;是我转发CSDN大佬的连接&#xff0c;直接上实验 VRRP详解 R1&#xff0c;R2充当两个网段的PC、分别是13.1.1.0 和24.2.2.0 R5&#xff0c;R6充当两个PC的接入层交换机 R5 eth0/1属于vlan 2000&#xff0c;R6 eth0/2属于vlan…

理解VRRP协议

VRRP即虚拟路由冗余协议(Virtual Router Redundancy Protocol)&#xff0c;它是为了避免路由器出现单点故障的一种容错协议。 如图1所示&#xff0c;我们把多个运行着VRRP协议的路由器抽象成一个虚拟路由器&#xff08;从外边来看&#xff0c;就像只有一个真实的路由器在工作&…

VRRP协议原理

目录 1、VRRP概述 2、VRRP概念 3、VRRP报文 4、VRRP工作原理 5、VRRP状态机 1、VRRP概述 在基于TCP/IP协议的网络中&#xff0c;为了保证不直接物理连接的设备之间的通信&#xff0c;必须指定路由。目前常用的指定路由的方法有两种&#xff1a;一种是通过路由协议&#xff08;比…

网络实验之VRRP协议

一、VRRP协议简介 虚拟路由冗余协议(Virtual Router Redundancy Protocol&#xff0c;简称VRRP)是由IETF提出的解决局域网中配置静态网关出现单点失效现象的路由协议。VRRP是一种路由容错协议&#xff0c;也可以叫做备份路由协议。一个局域网络内的所有主机都设置缺省路由&…

VRRP 协议技术详解

文章目录 **1 VRRP 技术**1.1 VRRP的基本概念1.2 VRRP协议标准模式详解**VRRP备份组****备份组成员的优先级****备份组成员的工作方式****备份组成员的认证方式****VRRP定时器****VRRP工作过程****VRRP监视功能****VRRP报文格式** 1.3 VRRP协议负载模式详解**VRRP负载均衡模式基…

vrrp协议整理

文章目录 一、 产生背景二、 基本概念三、 应用场景四、 VRRP功能五、 状态机六、 VRRP定时器七、 主备选举八、 报文特征九、 配置限制十、 问题分析 一、 产生背景 图 1 通常&#xff0c;同一网段内的所有主机上都存在一个相同的默认网关&#xff0c;如图 1所示&#xff0c;处…

VRRP的协议原理和配置

目录 VRRP基本概述 实验配置 ​编辑 测试结果 VRRP基本概述 VRRP能够在不改变组网的情况下&#xff0c;将多台路由器虚拟成一个虚拟路由器&#xff0c;通过配置虚 拟路由器的IP地址为默认网关&#xff0c;实现网关的备份。 协议版本: VRRPv2 (常用)和VRRPv3&#xff0c; V…

VRRP协议简介与实例配置

VRRP协议简介与实例 一、前言二、VRRP术语三、VRRP状态1、Initialize状态2、Master状态3、Backup状态 四、VRRP的作用五、实例需求&#xff1a;1、配置PC机2、各个设备基础配置3、VRRP配置4、OSPF配置5、测试连通性6、三层交换机的VRRP配置情况7、断开LSW4的G0/0/2后VRRP配置情…

VRRP协议原理与配置

前言 局域网中的用户终端通常采用配置一个默认网关的形式访问外部网络&#xff0c;如果此时默认网关的形式访问外部网络&#xff0c;如果此时默认网关设备发生故障&#xff0c;将中断所有用户终端的网络访问&#xff0c;这很可能会给用户带来不可预计的损失&#xff0c;所以可以…

VRRP技术详解

1 概述 1.1 产生背景 随着 Internet 的发展&#xff0c;人们对网络可靠性的要求越来越高。特别是对于终端用户来说&#xff0c;能够实时与网络其他部分保持联系是非常重要的。一般来说&#xff0c;主机通过设置默认网关来与外部网络联系&#xff0c;如图 1 所示&#x…

VRRP 的基本概述

什么是VRRP 虚拟路由冗余协议VRRP&#xff08;Virtual Router Redundancy Protocol&#xff09;是一种用于提高网络可靠性的容错协议。通过VRRP&#xff0c;可以在主机的下一跳设备出现故障时&#xff0c;及时将业务切换到备份设备&#xff0c;从而保障网络通信的连续性和可靠…

VRRP协议 学习笔记

1、VRRP协议 为什么使用VRRP&#xff1f; 解决网关的单点故障 如何配置&#xff1f; vrrp vrid 1 virtual-ip 192.168.1.254 //配置虚拟网关 vrrp vrid 1 priority 110 //设置优先级&#xff0c;默认100&#xff0c;范围1~254&#xff0c;越大越高 一、VRRP&#xff1a; 1、概述…

VRRP概述

可靠性是衡量一个网络的健壮程度的重要指标&#xff0c;一个可靠性差的网络&#xff0c;应对网络故障的能力相对较弱&#xff0c;当发生诸如网络设备故障或链路故障时&#xff0c;网络上所承载的业务受到的冲击往往比较大&#xff0c;严重时更会造成业务中断。 VRRP&#xff08…

VRRP协议是什么?详解它的工作原理

作者&#xff1a;Insist-- 个人主页&#xff1a;insist--个人主页 作者会持续更新网络知识和python基础知识&#xff0c;期待你的关注 前言 本文将讲解VRRP是什么&#xff0c;以及它的工作原理&#xff0c;优点以及基本概念。 目录 一、VRRP协议是什么&#xff1f; 二、VRR…

VRRP详解

文章目录 一、 什么是VRRP?二、为什么需要VRRP?三、VRRP工作原理1、VRRP的三种状态2、VRRP的选举机制3、VRRP工作原理 四、VRRP的应用场景1、与接口状态联动2、与路由状态联动 一、 什么是VRRP? 虚拟路由冗余协议VRRP&#xff08;Virtual Router Redundancy Protocol&#x…

秒懂VRRP协议原理及配置

目录 一、VRRP的定义 二、VRRP的作用 三、VRRP的好处 四、工作原理 五、专业术语 六、实例演示 七、总结 一、VRRP的定义 虚拟路由冗余协议(Virtual Router Redundancy Protocol&#xff0c;简称VRRP)是由IETF提出的解决局域网中配置静态网关出现单点失效现象的路由协议…

决策树算法及其应用案例

决策树算法主要分为三类&#xff1a; ID3、C4.5、CART算法 以ID3算法为例&#xff1a; 对上表某图书销量进行预测. 思考:建立测试模型,各个变量数据权重?数据的转化? 重点在于&#xff1a;计算各个信息熵(数据预处理),可参考百度百科内容 决策树算法模块&#xff1a; 关注点…

决策树算法(matlab)

本文转载自&#xff1a; 点击打开链接 决策树是一种特别简单的机器学习分类算法。决策树想法来源于人类的决策过程。举个最简单的例子&#xff0c;人类发现下雨的时候&#xff0c;往往会有刮东风&#xff0c;然后天色变暗。对应于决策树模型&#xff0c;预测天气模型中的刮东风…

决策树算法梳理(从原理到示例)

决策树是最经典的机器学习模型之一。它的预测结果容易理解&#xff0c;易于向业务部门解释&#xff0c;预测速度快&#xff0c;可以处理类别型数据和连续型数据。本文的主要内容如下&#xff1a; 信息熵及信息增益的概念&#xff0c;以及决策树的节点分裂的原则&#xff1b;决…