目录

一.Servlet定义

二.Servlet方法

三.GenericServlet抽象类

四.HttpServlet抽象类

五.Servlet生命周期

六.Server 创建一个 Servlet的实例


一.Servlet定义

Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。

狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实现了这个Servlet接口的类,一般情况下,人们将Servlet理解为后者。Servlet运行于支持Java的应用服务器中。从原理上讲,Servlet可以响应任何类型的请求,但绝大多数情况下Servlet只用来扩展基于HTTP协议的Web服务器。

最早支持Servlet标准的是JavaSoft的Java Web Server,此后,一些其它的基于Java的Web服务器开始支持标准的Servlet。

Servlet就是java中处理http请求的技术。

二.Servlet方法

1.init方法:初始化Servlet

2.service方法:处理http请求,并返回响应

有两个参数 1.请求:request 2.响应:response

3.destory方法:销毁Servlet

三.GenericServlet抽象类

是一个抽象类,实现了Servlet接口.

四.HttpServlet抽象类

是GennricServlet的子类,与HTTP有关,没有实现init和destory,主要是对service方法的重写

五.Servlet生命周期

  1. 客户端请求该 Servlet;

  2. 加载 Servlet 类到内存;

  3. 实例化并调用init()方法初始化该 Servlet;

  4. service()(根据请求方法不同调用doGet() 或者 doPost(),此外还有doHead()、doPut()、doTrace()、doDelete()、doOptions()、destroy())。

  5. 加载和实例化 Servlet。这项操作一般是动态执行的。然而,Server 通常会提供一个管理的选项,用于在 Server 启动时强制装载和初始化特定的 Servlet。

六.Server 创建一个 Servlet的实例

第一个客户端的请求到达 Server

Server 调用 Servlet 的 init() 方法(可配置为 Server 创建 Servlet 实例时调用,在 web.xml 中 标签下配置 标签,配置的值为整型,值越小 Servlet 的启动优先级越高)

一个客户端的请求到达 Server

Server 创建一个请求对象,处理客户端请求

Server 创建一个响应对象,响应客户端请求

Server 激活 Servlet 的 service() 方法,传递请求和响应对象作为参数

service() 方法获得关于请求对象的信息,处理请求,访问其他资源,获得需要的信息

service() 方法使用响应对象的方法,将响应传回Server,最终到达客户端。service()方法可能激活其它方法以处理请求,如 doGet() 或 doPost() 或程序员自己开发的新的方法。

对于更多的客户端请求,Server 创建新的请求和响应对象,仍然激活此 Servlet 的 service() 方法,将这两个对象作为参数传递给它。如此重复以上的循环,但无需再次调用 init() 方法。一般 Servlet 只初始化一次(只有一个对象),当 Server 不再需要 Servlet 时(一般当 Server 关闭时),Server 调用 Servlet 的 destroy() 方法。

如图1所示显示了一个典型的 Servlet 生命周期方案:

图1:典型的 Servlet 生命周期

1.第一个到达服务器的 HTTP 请求被委派到 Servlet 容器。

2.Servlet 容器在调用 service() 方法之前加载 Servlet。

3.然后 Servlet 容器处理由多个线程产生的多个请求,每个线程执行一个单一的 Servlet 实例的 service() 方法。

什么是Servlet相关推荐

  1. Ajax接收Java异常_java – 处理来自Servlet的Jquery AJAX响应中的异常

    我的servlet代码是 try{ //something response.setStatus(201); out.print("Data successfully saved" ...

  2. JavaEE学习笔记之Servlet

    同一用户的不同页面的共享数据 1.1 cookie技术 1.2 sendRedirect()转向 1.3 隐藏表单 1.4 session技术 ###session技术: 当用户打开浏览器,访问某个网 ...

  3. 【JavaWeb】servlet与http请求协议

    Servlet: 概念: server applet (服务端小程序)运行在服务器端的小程序 Servlet就是一个接口,定义了Java类被浏览器访问到(Tomcat识别)的规则. 将我我们自定义一个 ...

  4. 使用最新版(2020)IntelliJ IDEA 创建Servlet项目

    一:选择左上端的File,创建Project,选择创建Web Application 项目: 注:不勾选Create web.xml 二:设置项目名称:helloworld,并创建一个Servlet( ...

  5. 2020了,还要学JSP嘛?入个门呗!毕竟Servlet亲兄弟~

    目录 1.什么是JSP 2.JSP原理 3.JSP基础语法 jsp表达式 jsp脚本片段 jsp声明 jsp注释 4.JSP指令 5.JSP行为 6.9大内置对象 7.EL表达式 格式 变量 [ ]与 ...

  6. 来谈谈Servlet~~

    目录 1.Servlet简介 2.第一个Servlet程序 3.Servlet原理 4.servlet-mapping的配置 5.关于ServletContext 1.共享数据 2.获取初始化参数 3 ...

  7. 使用Servlet完成单表的CRUD

    实现步骤 第一步:准备一张数据库表.(sql脚本) 第二步:准备一套HTML页面(项目原型)[前端开发工具使用HBuilder] 第三步:分析我们这个系统包括哪些功能 第四步:在IDEA当中搭建开发环 ...

  8. 适配器(GenericServlet)改造Servlet

    JavaWeb系列教程 JavaWeb-Servlet 模拟Servlet本质 使用IDEA开发Servlet程序 Servlet对象的生命周期 适配器(GenericServlet)改造Servle ...

  9. 使用IDEA开发Servlet程序

    JavaWeb系列教程,持续更新 JavaWeb-Servlet 模拟Servlet本质 使用IDEA开发Servlet程序 Servlet对象的生命周期 适配器(GenericServlet)改造S ...

  10. 模拟Servlet本质

    JavaWeb系列教程,持续更新 JavaWeb-Servlet 模拟Servlet本质 使用IDEA开发Servlet程序 Servlet对象的生命周期 适配器(GenericServlet)改造S ...

最新文章

  1. mongodb 与 mysql区别 NOSQL 型号与SQL型号的区别 是非关系型号与关系型号的区别
  2. 11.2.0.2 asmcmd lsdg show incorrect diskgroup number
  3. android webview实例,android WebView 使用实例
  4. HTML DOM 第五篇
  5. Raspberry学习——raspberry pi 3 截图及查看
  6. kaptchaCode(验证码)
  7. 使用sikuli和Arquillian测试HTML5 canvas应用程序
  8. dataTables本地刷新数据解决只能初始化一次问题
  9. 【Python CheckiO 题解】Popular Words
  10. c ++查找字符串_C ++结构| 查找输出程序| 套装2
  11. 关于信息熵的简单理解
  12. 二分法求函数的解(函数零点)
  13. 认识了解WMV 9 视频编解码器
  14. 【模型导出与部署】项目接口与百度机器人对接
  15. java计算机毕业设计快递配送平台源码+mysql数据库+系统+lw文档+部署
  16. 新买的电脑是win11系统,找不到DirectX工具?教你如何操作打开
  17. SQL Server计算一年中的第几周
  18. L1 loss 是什么
  19. 2022-2028全球汽车压力传感器行业发展现状调研及投资前景分析报告
  20. 转:美国我来了:飞去美国各个程序最全解读

热门文章

  1. 常见的windows蓝屏代码查询及处理
  2. java web程序设计郭_Java Web程序设计-(第2版)
  3. 操作系统课程设计 —— 模拟磁盘文件系统实现 (Java)
  4. Web版本的国际通讯工具合集
  5. Nero Burning ROM 2014 16.0.03000 精简安装版(功能最强大的光盘刻录软件)
  6. Excel任务该如何在FineReader 12中设置
  7. vb导出mysql字段名_VB获取数据库字段名
  8. 高通android刷机工具,高通android7.0刷机工具使用介绍
  9. Dash_API与必应翻译的综合使用
  10. 请问mac上下virtualBox之后无法安装VBoxGuestAdditions怎么办??