Servlet(一)——认识Servlet

Servlet(一)Servlet基础 Servlet基础 目录 Servlet基础 -Servlet概述 -Tomcat容器等级 -HelloServlet手工编写第一个Servlet -HelloServlet使用eclipse编写第一个Servlet -Servlet执行流程 -Tomacat装载Servlet的三种情况 -JSP与SerVlet对象的对应关系 -通过Servlet获取表单数据 -Servle... 阅读详情

一、Servlet简介

    Servlet是Sun公司提供的一门用于开发动态Web资源的技术。

    Sun公司在其API中提供了一个servlet接口,用户若想用发一个动态web资源(即开发一个Java程序向浏览器输出数据),需要完成以下2个步骤:

       1、编写一个Java类,实现servlet接口。
  2、把开发好的Java类部署到web服务器中。

(按照一种约定俗成的称呼习惯,通常我们也把实现了servlet接口的java程序,称之为Servlet)


二、Servlet的生命周期(重点)

(Servlet是一个单例,只在Servlet容器中初始化一次,整个Servlet容器中只有一个Servlet对象)

Servlet程序是由Web服务器调用,Web服务器收到客户端的Servlet访问请求后:

   ①Web服务器首先检查是否已经装载并创建了该Servlet的实例对象。如果是,则直接执行第④步,否则,执行第②步。

 ②装载并创建该Servlet的一个实例对象。

 ③调用Servlet实例对象的init()方法。

 ④创建一个用于封装HTTP请求消息的HttpServletRequest对象和一个代表HTTP响应消息的HttpServletResponse对象,然后调用Servlet的service()方法并将请求和响应对象作为参数传递进去。

 ⑤WEB应用程序被停止或重新启动之前,Servlet引擎将卸载Servlet,并在卸载之前调用Servlet的destroy()方法。




三、Servlet接口实现类

    sun公司给Servlet接口定义了两个默认实现类,分别为:GenericServlet、HttpServlet。

    HttpServlet只能够处理HTTP请求的Servlet,它在原有的Servlet接口上添加了一些与HTTP协议处理方法,它比Servlet接口的功能更强大。因此开发人员在编写Servlet时,通常应继承这个类,而避免直接去实现Servlet接口。

     HttpServlet在实现Servlet接口时,复写了service方法,该方法体内的代码会自动判断用户的请求方式,如为get请求,则调用HttpServlet的doGet方法,如为Post请求,则调用doPost方法,所以在编写Servlet时,通常只需要复写doGet或doPost方法,而不需要复写service方法。

Java ee eclipse的项目中创建servlet文件,如下:



web.xml中会自动生成:

<servlet>
    <description>
    </description>
    <display-name>Servlet1</display-name>
    <servlet-name>Servlet1</servlet-name>
    <servlet-class>com.zl.servlets.Servlet1</servlet-class>
</servlet>
<servlet-mapping>

    <servlet-name>Servlet1</servlet-name>
    <url-pattern>/Servlet1</url-pattern> 
</servlet-mapping>



四、Servlet中使用配置和注解两种方式

4.1、使用配置方式

<servlet>       //注册Servlet
    <servlet-name>Servlet1</servlet-name>        //Servlet的注册名称
    <servlet-class>com.zl.servlets.Servlet1</servlet-class>       //Servlet的完整类名
</servlet>

<servlet-mapping>          //映射一个已注册的Servlet的一个对外访问路径
    <servlet-name>Servlet1</servlet-name>     //指定Servlet的注册名称
    <url-pattern>/ss</url-pattern>     //Servlet的对外访问路径,可以随便写一个
</servlet-mapping>

Servlet访问URL映射配置:

      <servlet>元素用于注册Servlet,它包含有两个主要的子元素:<servlet-name>和<servlet-class>,分别用于设置Servlet的注册名称和Servlet的完整类名。

     由于客户端是通过URL地址访问web服务器中的资源,所以Servlet程序若想被外界访问,必须把servlet程序映射到一个URL地址上,这个工作在web.xml文件中使用<servlet>元素和<servlet-mapping>元素完成。

    一个<servlet-mapping>元素用于映射一个已注册的Servlet的一个对外访问路径,它包含有两个子元素:<servlet-name>和<url-pattern>,分别用于指定Servlet的注册名称和Servlet的对外访问路径。

    同一个Servlet可以被映射到多个URL上,即多个<servlet-mapping>元素的<servlet-name>子元素的设置值可以是同一个Servlet的注册名。


4.2、使用注解方式

@WebServlet("/ss")      //映射名前斜杠不能掉!!!

Servlet版本在3.0及以上,jdk在1.6及以上才可以使用注解方式!!!

@WebServlet("/ss")
public class Servlet1 extends HttpServlet {
    ......
}


五、Servlet与普通Java类的区别

    Servlet是一个供其他Java程序(Servlet引擎)调用的Java类,它不能独立运行,它的运行完全由Servlet引擎来控制和调度。

    针对客户端的多次Servlet请求,通常情况下,服务器只会创建一个Servlet实例对象,也就是说Servlet实例对象一旦创建,它就会驻留在内存中,为后续的其它请求服务,直至web容器退出,servlet实例对象才会销毁。

     在Servlet的整个生命周期内,Servlet的init( )方法只被调用一次。而对一个Servlet的每次访问请求都导致Servlet引擎调用一次servlet的service( )方法。对于每次访问请求,Servlet引擎都会创建一个新的HttpServletRequest请求对象和一个新的HttpServletResponse响应对象,然后将这两个对象作为参数传递给它调用的Servlet的service( )方法,service( )方法再根据请求方式分别调用doXXX方法。(后面会讲解Servlet的生命周期这个问题)



Servlet入门案例(一)认识Servlet 大型分布式系统犹如一个生命,系统中各个服务犹如骨骼,其中的数据犹如血液,而Kafka犹如经络,串联整个系统。这份Kafka源码笔记通过大量的设计图展示、代码分析、示例分享,把Kafka的实现脉络展示在读者面前,帮助读者更好地研读Kafka代码。麻烦帮忙转发一下这篇文章+关注我《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!麻烦帮忙转发一下这篇文章+关注我[外链图片转存中…(img-7LAJiKFD-1713382499503)] 阅读详情

相关推荐

AI工程化之生成式UI & A2UI(二)

本文介绍了生成式UI框架A2UI的架构设计与核心实现。项目采用AI协作开发模式,通过ATDD(AI驱动的测试驱动开发)确保代码质量。前端SDK基于zustand实现框架无关的状态管理,包含协议解析器、存储管理、渲染器等核心模块。重点展示了基础store构建、A2UI协议解析器的实现过程,包括mock数据准备、测试用例生成和可视化调试。项目采用monorepo管理,利用vite实现高效开发构建。整个系统设计遵循模块化原则,通过清晰的接口定义实现各组件解耦,为后续功能扩展打下基础。

qq_34306228的博客 407

servlet的运行过程

servlet运行过程以及生命周期

不码不成才 530

baostock实战:如何用Python批量下载多只股票的历史数据(含常见错误排查)

本文详细介绍了如何使用Python和baostock库批量下载多只股票的历史数据。内容涵盖从环境搭建、代码标准化到构建稳健的批量下载框架的全过程,并重点提供了高级错误处理、网络重试、数据验证及内存管理等实战解决方案,帮助用户高效构建股票数据处理流水线。

nice1的博客 1081

Servlet全面详解(学习笔记)

Servlet全面详解(学习笔记)

as1517的博客 5872

VS配置RTKLIB(卫星定位开源代码)环境

@RTKlib代码调试教程-Visual Studio 2019 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 ##RTKLIB-rtklib_2.4.3 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 @RTKlib代码调试教程-Visual Studio 2019 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技

qq_42209977的博客 4486

手机如何高效辅助林业调查

手机如何高效辅助林业调查 很多林业工作者将栅格类型的地形图处理后导入平板电脑,在林地使用平板电脑加载小班矢量图,辅助林业调查。但是,如果没有地形图底图,这种方法可能就有难度,而且最重要的是,大部分林地工作者没有能力配置平板电脑。大凡林业基层工作者在林地调查时,除调查记录本等部分纸质材料外,都必然携带手机和水杯,此外其他设备已经成为累赘,尤其是炎热的夏季在杂灌丛生的林地进行调查作业。因此,使用手机...

xu780820的博客 3078

jsp和Servlet的区别以及什么时候创建Servlet或者class文件

什么时候创建Servlet或者class文件: 处理用户请求的,接收用来页面发来的请求,要返回到jsp页面就servlet,如登录(获取用户名密码),注册等(获取用户信息),分页。 具体业务逻辑的实现,用来处理其他类发的请求,返回普通数据参数,如登录的实现处理,用Class类。(多看看mvc)。 jsp和Servlet的区别: 简单的说,SUN首先发展出SERVLET,其功能比较强劲

u013223565的专栏 3528

知识图谱的数据挖掘与分析

1. 背景介绍 1.1 数据挖掘的崛起 随着互联网的普及和大数据技术的发展,数据挖掘已经成为了计算机科学领域的热门研究方向。数据挖掘是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,通过计算机科学、统计学、信息论等多学科交叉的方法,挖掘出有用信息和知识的过程。数据挖掘的目标是从数据中发现有

AI天才研究院 1600

Servlet基础详解

Servlet的基本概念及使用规范

m0_57789266的博客 2万+

用 SAP S/4HANA Configure Predefined Custom Fields 玩转预定义自定义字段:从概念到实战

SAP预定义自定义字段配置指南:安全扩展业务模型的云原生方案 摘要: 本文系统介绍SAP S/4HANA Cloud中预定义自定义字段的配置方法,对比普通自定义字段与预定义字段的区别,阐述其技术特点与业务价值。重点解析"Configure Predefined Custom Fields"应用的核心功能,包括字段元数据配置、多语言支持、UI集成等能力,并通过业务伙伴扩展案例演示完整实施流程。文章指出预定义字段方案在云环境下的独特优势:既满足业务扩展需求,又能保证系统可升级性,是SaaS环

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 81

【数字IC基础】DFT(Design For Test)可测性设计

【数字IC基础】DFT(Design For Test)可测性设计

努力,加油每一天鸭~ 3466

认识Servlet

认识Servlet,区分Servlet和JSP的区别,了解Servlet的基本原理和特点。

a1160568825的博客 1268

ABAP Secure Storage 在事务码 SM59 中的应用

系统管理人员在进行维护时,应关注相关日志信息,及时发现可能出现的安全异常,并针对不同安全等级的操作制定相应的备份与恢复策略,以降低潜在风险。该区域在设计上具备高度隔离性,仅允许经过授权的组件访问。保存后,系统会将密码存储在 Secure Storage 中,这种处理方式充分体现了 SAP 标准程序在安全设计上的考量。对于系统管理员而言,这种机制在日常维护与审计中提供了有力的支持,可以通过比对存储数据的哈希值或其他完整性校验手段,及时发现异常变动,保障系统长期稳定运行。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 675

实验一 Servlet技术

实验一 Servlet技术 一、实验目的: 1.理解Servlet的工作原理, 2.掌握创建和发布Servlet的方法, 3.熟悉Servlet的应用。 4.掌握维持会话技术,理解cookies与session的区别。 二、实验原理: Servlet是Java EE的三大组件技术之一,主要用于MVC模式之中的控制器的设计。Servlet本身是Java程序,创建一个Servlet需要...

云卷云舒 4202

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

一图了解Servlet基础

一图了解Servlet基础

DN金猿的博客 215

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

一、servlet

Java Servlet 是运行在 Web 服务器或应用服务器上的程序,也就是一个java 类,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。

Alyson_jm的博客 1197

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

一、了解 Servlet 及 Servlet 容器

Web 服务器(或者应用服务器)通过发送和响应请求、解码基于MIME的请求、格式化基于 MIME 的响应来提供网络服务,Servlet 容器就是它们的其中一个部分。Servlet 容器还包含并且管理 Servlet 的整个生命周期。Servlet 容器可以构建到主机的 Web 服务器中,也可以作为一个附加的组件通过服务器的本地扩展 API 和服务器相连接。Servlet 还可以内置或者安装到启用 Web 功能的应用服务器中。

赵凯的博客 729

Servlet①

Servlet①

TheFlangeUndead的博客 778

Servlet总结一

Servlet总结一 HttpServlet 想要实现一个servlet必须继承这个类,其实一个servlet就是一个java文件,但是这个类必须是继承HttpServlet。 生命周期 servlet的生命周期是从创建到毁灭的一个过程,具体的过程如下: Servlet 通过调用 init () 方法进行初始化。 Servlet 调用 service() 方法

nginxs的博客 421

Servlet学习总结一

1. Servlet概述        Servlet是一种服务器端Java应用程序        Servlet能动态响应客户端请求,生成动态的Web页面,从而扩张服务器的功能        Servlet有Servlet容器管理(Servlet的运行环境)2. Servlet特点        高效                每一个请求有一个轻量级的Java线程处理        移植性好...

weixin_41704428的博客 929

【Servlet】 一

本文主要介绍了如何在tomcat部署一个webapp 以及 如何借助maven用servlet编写一个hello world .

weixin_63210321的博客 439

Servlet 一、Servlet概述

也就是说,用户的请求是由Servlet来处理的!例如用户发出登录请求,那么就应该由处理登录的Servlet来处理;用户发出登录请求,那么就应该有登录Servlet来处理。Servlet是JavaWeb三大组件之一,它是我们学习JavaWeb最为基本的组件,当客户端发出请求后,由Tomcat去找到可以处理这一请求的Servlet来处理。Servlet,即Server Let的意思,

best_virtuoso的博客 284

Servlet(一)——Servlet开发

目录 1.Servlet引入 2.简单的Servlet程序 3.Servlet生命周期 1.Servlet引入 百度百科:Servlet简介 主要功能在于交互式地浏览和生成数据,生成动态Web内容; 从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。 2.简单的Servlet程序 先建立一个H...

程序员的时光 436

Servlet(一)

一.什么是servlet一.什么是servletServlet 是一种实现动态页面的技术。是一组 Tomcat 提供给程序猿的 API, 帮助程序猿简单高效的开发一个 web app。1.回顾 动态页面 vs 静态页面静态页面也就是内容始终固定的页面。即使 用户不同/时间不同/输入的参数不同 , 页面内容也不会发生变化。(除非网站的开发人员修改源代码, 否则页面内容始终不变)。对应的, 动态页面指的就是 用户不同/时间不同/输入的参数不同, 页面内容会发生变化。

weixin_65846395的博客 1263

Servlet【一】

1、Servlet 是 JavaEE 规范之一。规范就是接口2、Servlet 就 JavaWeb 三大组件之一。三大组件分别是:Servlet 程序、Filter 过滤器、Listener 监听器。3、Servlet 是运行在服务器上的一个 java 小程序,它可以接收客户端发送过来的请求,并响应数据给客户端。1、ServletContext 是一个接口,它表示 Servlet 上下文对象2、一个 web 工程,只有一个 ServletContext 对象实例。...

weixin_50020236的博客 154
上一篇: 粗略了解下HTTP协议
下一篇: 页面跳转的四种方式以及forward和redirect的区别
zl_StepByStep
博客等级 码龄10年 154粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值