java servlet详解

news2024/9/26 3:28:28

一、Servlet实现方式

1、实现Servlet接口,接口中的方法必须全部实现。此种方式支持最大程度的自定义。

2、继承GenericServlet,service方法必须重写,其他方可根据需求,选择性重写。

使用此种方式,表示只在接收和响应客户端请求这方面有重写的需求,而其他方法可根据实际需求选择性重写,使我们的开发Servlet变得简单。但是,此种方式是和HTTP协议无关的。

3、继承HttpServlet,它是javax.servlet.http包下的一个抽象类,是GenericServlet的子类。如果我们选择继承HttpServlet时,只需要重写doGet和doPost方法,不要覆盖service方法。

使用此种方式,表示我们的请求和响应需要和HTTP协议相关。也就是说,我们是通过HTTP协议来访问的。那么每次请求和响应都符合HTTP协议的规范。请求的方式就是HTTP协议所支持的方式(GET POST PUT DELETE TRACE OPTIONS HEAD )。

二、servlet生命周期

servlet实例化和初始化只会在请求第一次到达Servlet时执行,而销毁只会在Tomcat服务器停止时执行,只会创建一次,销毁一次。

init()方法(初始化的时候执行一次)——doGet/Post——destroy()方法(服务器停止的时候执行一次)

三、线程安全问题

servlet是单例的,不要使用非静态的成员变量,否则会发生数据逻辑混乱产生线程安全问题。

四、映射方式

servlet有三种映射配置方式

1、只有和映射配置一模一样时,Servlet才会接收和响应来自客户端的请求

2、/开头+通配符的方式  例如:映射为:/servlet/*

访问URL:http://localhost:8585/servlet/aaa 和 http://localhost:8585/servlet/bbb.do

3、通配符+固定格式结尾 例如:映射为:*.do

访问URL:http://localhost:8585/servlet/aaa.do 和 http://localhost:8585/bbb.do

三种映射方式的优先级为:第一种>第二种>第三种

五、servlet创建的时机

1、应用加载时(即服务器启动时),创建Servlet。优点:提高首次请求访问的效率;缺点:浪费内存

2、第一次请求访问的时候创建servlet。优点:节约内存;缺点:有一些要在应用加载时就做的初始化操作,就无法完成

配置<load-on-startup>1</load-on-startup>即可设置servlet何时创建。

六、ServletConfig介绍

每个Servlet都有一个自己的ServletConfig。它的作用是在Servlet初始化期间,把一些配置信息传递给Servlet,生命周期与Servlet相同。

如何配置?

如何获取ServletConfig?

通过init方法传递进来。

//定义Servlet配置对象ServletConfig
private ServletConfig servletConfig;

/**
 * 在初始化时为ServletConfig赋值
 * @param config
 * @throws ServletException
 */
@Override
public void init(ServletConfig config) throws ServletException {
    this.servletConfig = config;
}

 七、ServletContext介绍

1、概念

 2、配置方式

3、常用方法

 

 

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

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

相关文章

作为通信人,你知道国内有哪些通信领域的博物馆吗?

众所周知&#xff0c;博物馆是收藏、展示和研究历史文物的地方。参观博物馆&#xff0c;既可以回顾历史往事&#xff0c;也可以学习知识。 那么&#xff0c;作为通信人&#xff0c;你知道国内有哪些通信领域的博物馆吗&#xff1f; 今天&#xff0c;就让小编给大家介绍介绍。█…

微鳄365,可私有化部署的企业管理软件,让数据更安全让管理更方便

编者按&#xff1a;本文分析了企业数字化转型中常遇到的一些困难&#xff0c;并进一步指出微鳄365一体化解决方案&#xff0c;可以帮助企业克服这些困难。关键词&#xff1a;免安装&#xff0c;免维护&#xff0c;成本低&#xff0c;数据安全&#xff0c;共享协作&#xff0c;个…

利用STM32的LR寄存器调试HardFault错误

R14 or LR(Link Register) HardFault调试的思路 先在出错误的地方打断点&#xff0c;让程序的状态固定下来&#xff1b;由于HardFault属于异常&#xff0c;所以出现HardFault后&#xff0c;LR的值一定是0xFFFFFFFx&#xff0c;这样就可以根据其值&#xff0c;判断程序进入这个…

C++学习记录——십일 string类模拟实现

这篇对于string类的实现会一步步来&#xff0c;从错误到正确&#xff0c;尽量展现可能会忽略掉的细节. 文章目录1、初始化列表2、拷贝构造函数和赋值函数3、循环输出&#xff0c;迭代器4、插入删除等5、流插入流提取6、其它接口1、初始化列表 先写下来这些代码 String.h #pra…

KDJB-802微机继电保护测试仪

一、产品概述 KDJB-802微机继电保护测试仪是在参照电力部颁发的《微机型继电保护试验装置技术条件(讨论稿)》的基础上&#xff0c;广泛听取用户意见&#xff0c;总结目前国内同类产品优缺点&#xff0c;充分使用现代新的的微电子技术和器件实现的一种新型小型化微机继电保护测…

Delphi RSA加解密

感谢、感谢、感谢大佬的分享&#xff0c;https://github.com/ZYHPRO/RSAEncryptAndDecode 目录 1. 前言 2. 准备工作 3. Demo注意事项说明 3.1 公钥、私钥文本格式 3.2 回车键的影响 3.3 中文加解密说明 4. 结语 1. 前言 最近工作上安排了一个项目&#xff0c;与工商银行之…

whistle+SwitchyOmega配置代理解决白名单跨越

文章目录whistleSwitchyOmega配置代理什么是whistle什么是SwitchyOmega示例&#xff1a;作用为什么不直接使用SwitchyOmega代理whistleSwitchyOmega配置代理 什么是whistle whistle主要用于查看、修改HTTP、HTTPS、Websocket的请求、响应&#xff0c;也可以作为HTTP代理服务器…

数据结构-考研难点代码突破(树型查找 - 红黑树(RBT)插入流程图,删除)

文章目录1. 红黑树的定义和性质红黑树的插入操作流程红黑树的删除&#xff08;了解&#xff09;1. 红黑树的定义和性质 红黑树查找与删除的效率和AVL树相同。 但是因为AVL树在插入或删除节点可能破坏AVL树结构&#xff0c;而重新调整树的开销大。所以引出了红黑树。 红黑树的…

内网渗透(五十二)之域控安全和跨域攻击-搭建和查看域信任关系

系列文章第一章节之基础知识篇 内网渗透(一)之基础知识-内网渗透介绍和概述 内网渗透(二)之基础知识-工作组介绍 内网渗透(三)之基础知识-域环境的介绍和优点 内网渗透(四)之基础知识-搭建域环境 内网渗透(五)之基础知识-Active Directory活动目录介绍和使用 内网渗透(六)之基…

为什么你的客户不喜欢用你的知识库呢?

现在很多企业的知识库处于一个完全荒废的状态&#xff0c;极少顾客愿意去查询使用&#xff0c;有的客户甚至完全停止使用企业知识库&#xff0c;这到底是为什么呢&#xff1f;看过许多公司的知识库后&#xff0c;总结了几个知识库失败的原因&#xff0c;并且提出了几个解决方法…

flink sql 执行慢问题排查(flink jdbc where 条件没有下推数据库)

最近在使用 flink sql &#xff08;jdbc&#xff09;执行一个简单表同步&#xff0c;可是执行了半天都没有执行完&#xff0c;后面通过 jstack 找到了问题原因&#xff1a;where条件没有下推到数据库执行。 任务如下&#xff1a; create table mysql_a ( id1 string, id2 at…

vue路由跳转取消上个页面的请求

场景描述&#xff1a; ​ 项目中&#xff0c;有一个Steps 步骤条&#xff0c;包含三步审核&#xff0c; 当页面跳转时&#xff0c;不管当前处于第几步&#xff0c;都需要停止上个页面正在执行或还未执行的逻辑。 需求&#xff1a;当vue路由跳转时&#xff0c;取消执行上个页面…

和中国信通院美图公司技术专家见面,聊聊FinOps从概念到落地

成本优化成为企业上云的核心关切。目前&#xff0c;许多以“上云”为数字化转型路径的企业正面临着严重的云上超支问题。 数据库软件上市公司 Couchbase 曾发布一则报告称&#xff1a;一个典型的企业每年在云服务的支出超过3300万美元&#xff0c;这个数字比企业必要的支出还多…

【类与对象】封装对象的初始化及清理

C面向对象的三大特性&#xff1a;封装、继承、多态。具有相同性质的对象&#xff0c;抽象为类。 文章目录1 封装1.1 封装的意义&#xff08;一&#xff09;1.2 封装的意义&#xff08;二&#xff09;1.3 struct 和 class区别1.4 成员属性设置为私有练习案例&#xff1a;1 设计…

go gin学习记录5

有了前面几节的学习&#xff0c;如果做个简单的web服务端已经可以完成了。 这节来做一下优化。 我们实验了3种SQL写入的方法&#xff0c;但是发现每一种都需要在方法中去做数据库链接的操作&#xff0c;有些重复了。 所以&#xff0c;我们把这部分提取出来&#xff0c;数据库链…

【C/C++】中【typedef】用法大全

总结一下typedef用法&#xff0c;一共七种&#xff0c;分别是&#xff1a;为基本数据类型起别名、为结构体起别名、为指针类型起别名、为数组类型起别名、为枚举类型起别名、为模版函数起别名。 目录 一、为基本数据类型起别名 二、为结构体起别名 三、为指针类型起别名 四…

Windows应用之——设置定时关机

一 概述 本文介绍window设置自动关机的两种方式&#xff1a; cmd指令设置自动关机任务计划程序设置自动关机第三方定时关机软件 二 cmd指令设置自动关机—不推荐 2.1 自动关机-开启(管理员模式下) 依次点击‘“开始”&#xff0c;在“搜索程序和文件”中输入cmd&#xff0c…

Python GDAL读取栅格数据并基于质量评估波段QA对指定数据加以筛选掩膜

本文介绍基于Python语言中gdal模块&#xff0c;对遥感影像数据进行栅格读取与计算&#xff0c;同时基于QA波段对像元加以筛选、掩膜的操作。本文所要实现的需求具体为&#xff1a;现有自行计算的全球叶面积指数&#xff08;LAI&#xff09;.tif格式栅格产品&#xff08;下称“自…

关于Transformer的一些问题总结

一些与Transformer模型相关的问题总结&#xff0c;有不对的欢迎指出。 &#x1f4a1; 残差网络为何可以解决梯度消失 对比1和2可以发现&#xff0c;对于普通网络&#xff0c;当有几个偏导很小的时候&#xff0c;梯度会迅速趋近于0&#xff1b;而对于残差网络&#xff0c;要趋近…