初学者servlet,最大疑问无非是:它是什么?它由什么组成?它的生命周期?它能干什么?它怎么实现 ?

servlet 还有很多地方需要学习,我暂时只写了这些,有很不完善的地方,仅代表个人意见,欢迎批评指正

以下观点参考了很多大神的资料


1. 什么是Servlet?

① Servlet就是JAVA 类
② Servlet是一个继承HttpServlet类的类
③这个在服务器端运行,用以处理客户端的请求

Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层,简单的来说,它只是一个类。


2. 它由什么组成?

ServletAPI 主要由两个Java包组成: javax.servlet 和 javax.servlet.http

javax.servlet.* :存放与HTTP 协议无关的一般性Servlet 类;

javax.servlet.http.* :除了继承javax.servlet.* 之外,并且还增加与HTTP协议有关的功能。

HttpServlet :提供了一个抽象类用来创建Http Servlet。

  public void doGet()方法:用来处理客户端发出的 GET 请求
  public void doPost()方法:用来处理 POST请求
  还有几个方法大家自己去查阅API帮助文件

javax.servlet包的接口:

  ServletConfig接口:在初始化的过程中由Servlet容器使用
  ServletContext接口:定义Servlet用于获取来自其容器的信息的方法
  ServletRequest接口:向服务器请求信息
  ServletResponse接口:响应客户端请求
  Filter接口:可以实现用户在访问某个目标资源之前,对访问的请求和响应进行拦截

javax.servlet包的类:

  ServletInputStream类:用于从客户端读取二进制数据
  ServletOutputStream类:用于将二进制数据发送到客户端

javax.servlet.http包的接口:

  HttpServletRequest接口:提供Http请求信息
  HttpServletResponse接口:提供Http响应


3. 它的生命周期

整个过程.

  1. 如果一个servlet的实例并不存在, Web容器将

    • 加载servlet类
    • 创建一个servlet类的实例
    • 调用init初始化servlet实例
  2. 调用service方法,传递一个请求和响应对象
  3. 如果该容器要移除这个servlet,可调用servlet的destroy方法来结束该servlet

servlet三个方法

  init()方法:
  service()方法:Dispatches client requests to the protected service method 
  destroy()方法:Called by the servlet container to indicate to a servlet that the servlet is being taken out of service.
  

Servlet生命周期

  1. 客户端请求该 Servlet;
  2. 加载 Servlet 类到内存;
  3. 实例化并调用init()方法初始化该 Servlet;
  4. service()(根据请求方法不同调用doGet() 或者 doPost(),此外还有doHead()、doPut()、doTrace()、doDelete()、doOptions());
  5. destroy() 销毁

4. 它能干什么?

简单的说,它的工作模式是:

客户端发送请求至服务器,服务器启动并调用 Servlet,Servlet 根据客户端请求生成响应内容并将其传给服务器,服务器将响应返回客户端。

Servlet 执行以下主要任务:

  1. 读取客户端(浏览器)发送的显式的数据。这包括网页上的 HTML 表单,或者也可以是来自 applet 或自定义的 HTTP 客户端程序的表单。

  2. 读取客户端(浏览器)发送的隐式的 HTTP 请求数据。这包括 cookies、媒体类型和浏览器能理解的压缩格式等等。

  3. 处理数据并生成结果。这个过程可能需要访问数据库,执行 RMI 或 CORBA 调用,调用 Web 服务,或者直接计算得出对应的响应。

  4. 发送显式的数据(即文档)到客户端(浏览器)。该文档的格式可以是多种多样的,包括文本文件(HTML 或 XML)、二进制文件(GIF 图像)、Excel 等。

  5. 发送隐式的 HTTP 响应到客户端(浏览器)。这包括告诉浏览器或其他客户端被返回的文档类型(例如 HTML),设置 cookies 和缓存参数,以及其他类似的任务。


5. 它怎么实现?

最关键的地方,也是最期待的地方,需要配置服务器什么的巴拉巴拉。。代码贴在下一篇吧!

JAVA实习笔记——Servlet相关推荐

  1. Java学习笔记·Servlet parameter参数传递utf-8文字编码正常显示

    传递parameter时,正常显示各种语言文字的编码 首先设置tomcat的uriencoding为iso-8859-1(tomcat配置文件里的server.xml) <Connector U ...

  2. Java Web 实习笔记(二)

    Java web实习笔记目录导航 1. Java Web 实习笔记(一) 2.Java  Web 实习笔记(二) 3.Java Web 实习笔记(三) 4.Java Web 实习笔记(四) 笔记(一) ...

  3. Java Web 实习笔记(一)

    Java web实习笔记目录导航 1. Java Web 实习笔记(一) 2.Java  Web 实习笔记(二) 3.Java Web 实习笔记(三) 4.Java Web 实习笔记(四) 一.WEB ...

  4. Java Web 实习笔记(三)

    Java web实习笔记目录导航 1. Java Web 实习笔记(一) 2.Java  Web 实习笔记(二) 3.Java Web 实习笔记(三) 4.Java Web 实习笔记(四) 一.Use ...

  5. 实习笔记 —— Maven

    系列文章目录 实习笔记 -- Spring基础 实习笔记 -- IOC反转控制(xml配置文件 + 注解) 实习笔记 -- AOP开发I 实习笔记 -- AOP开发II(AOP中Advice的类型) ...

  6. 微信公众号Java开发-笔记02【开发接入准备、开发接入】

    学习视频网址:哔哩哔哩网站 微信公众号开发-Java版 [P01-P02]微信公众号Java开发-笔记01[微信公众号介绍.开发环境搭建] [P03-P04]微信公众号Java开发-笔记02[开发接入 ...

  7. 实习笔记 —— MyBatis III (输入/输出映射)

    系列文章目录 实习笔记 -- Spring基础 实习笔记 -- IOC反转控制(xml配置文件 + 注解) 实习笔记 -- AOP开发I 实习笔记-- AOP开发II(AOP中Advice的类型) 实 ...

  8. 从零基础到拿到网易Java实习offer,我做对了哪些事

    点击上方蓝字可以订阅哦! 作为一个非科班小白,我在读研期间基本是自学Java,从一开始几乎零基础,只有一点点数据结构和Java方面的基础,到最终获得网易游戏的Java实习offer,我大概用了半年左右 ...

  9. java实习报告范文

      篇1:java实习报告范文一.前言 实习时间:20_年02月07号---20_年06月1号 实习地点:河北中信联信息技术有限公司软件开发实习生 实习目的:通过实习,培养学生树立理论联系实际的工作作 ...

最新文章

  1. CentOS Firewall防火墙设置规则
  2. C# 部署失败--上传文件缺失
  3. [No0000130]WPF 4.5使用标记扩展订阅事件
  4. A01_[NumPy中文网]数组基础(创建数组,多维数组切片,数组属性)、使用数组(基本操作符,数组特殊运算符)、索引(花式索引,布尔索引,缺省索引)
  5. [react] react中你用过哪些第三方的中间件
  6. oracle database 11g plsql 程序设计,oracle-database-11g-plsql-编程实战笔记
  7. 计算机学报格式_参考文献格式的那些事儿
  8. 第5章 set命令详解
  9. 高等数学(第七版)同济大学 习题2-5 个人解答
  10. 【论文学习:基于EEG/EMG/EOG的多模态人机接口,用于实时控制软机器人手】
  11. 第1章 弗洛依德——精神分析
  12. 北京奖励专精特新企业补贴有哪些及怎么建设重点介绍,补贴20-50万
  13. 计算机系统变慢的原因,浅析win7系统变慢的原因以及如何让电脑提速
  14. dtypes.py:526: FutureWarning: Passing (type, 1) or '1type' as a synonym of type is deprecated; in a
  15. 职场人士如何抵御消极心理暗示
  16. 唐骏:身价10亿不买房 每月12万住宾馆
  17. 威纶通触摸屏宏指令GetData和SetData函数的使用方法示例
  18. (三)微信电子请帖制作
  19. 国产数字源表在三极管性能测试上面的应用
  20. 关于中英文语料的获取途径总结

热门文章

  1. 沧海笑绝走黄霑,人间不闻广陵散
  2. 谈谈〈鹿鼎记〉中的七位女主角
  3. 为什么天才容易患阅读障碍症_阅读障碍症是一种什么样的病?
  4. sata 双硬盘 电源线_鸡肋还是创新 神奇SSD不接电源/SATA线
  5. 实验六 : java nio 写文件速度
  6. 迷宫html源代码自动走,详细介绍HTML5实现3D迷宫的代码案例
  7. 类型转换神器Mapstruct新出的Spring插件真好用
  8. VB编程:身份证号码是否合法-49
  9. Android之主题(Theme)总结
  10. 解决ubuntu下提示未信任的应用启动器的问题