`
XTU_xiaoxin
  • 浏览: 240722 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Servlet 规范笔记—servlet概念及结构

 
阅读更多
Servlet, 这个词对java程序员并不陌生,我想几乎每个java程序员在学习J2EE知识时,首先学习的就是servlet,这是一种正确的学习方式,在我看来Servlet是J2EE的基础,要熟练的掌握J2EE,必须深刻的了解Servlet的原理,因为你想想,现在只要是web相关的技术或框架,无论是开源的、非开源的,哪个和Servlet没有关系? Spring MVC、Struts、WebWork、SiteMesh等框架都是在Servlet的基础上搭建起来的,要想深刻的了解这些框架 , 熟练的运用这些框架,首先就要理解Servlet原理,明白Servlet的规范。下面一系列文章,将描述一些我对Servlet相关的了解. 首先,让我们理解几个概念?
什么是Servlet?
Servlet 是一种基于java技术的web组件,是一种基于java的且与第三方平台无关的类。通常,它可以被Web 服务器编译、加载和运行,最后生成动态的资源内容。
什么是Servlet容器?
Servlet 容器通常是web 服务器中的一部分,或者说是它的一个组件,Sevlet容器通常提供了一些如接收客户端请求、给出响应等网络请求服务,通常,Servlet容器通过Servlet的生命周期来管理所有的Servlet, Tomcat就是一个典型的Servlet容器。
为什么要使用Servlet?
1. Servlet是采用java语言编写,而由java 跨平台性的特点可知,servlet的移植性很好,且servlet API具有完善的标准,几乎所有的主流服务器都支持servlet.
2. 据说,Servlet与传统的CGI(Common Gateway Interface)相比,功能要强大,且处理的请求采用的是线程,而非进程,从而节省大量的资源开销,因此Servlet处理请求更轻量级、更高效
Servlet规范API 类图

结合上图,我们了解和明白一些servlet相关的知识
servlet响应client请求的大概步骤
前面我们说过,servlet的作用主要是接受client请求,生成动态内容,然后返回给客户端,那这个处理过程又由哪些步骤组成呢?
首先,client 发送请求到 服务器 web server或servlet容器;
然后,web server 接收client请求,然后根据client请求调用对应的servlet,动态得产生请求的资源;
最后,web server 将资源返回client.
servlet的生命周期
通过上图,可以清楚的知道servlet接口中主要方法有三个,分别是init、service和destroy。让我们结合这三个方法来描述servlet的生命周期: 1, 在servlet容器或web server启动时, 对servlet进行实例化,此时调用servlet的构造方法;servlet实例化后,调用该servlet实例的init方法,对servlet进行一些初始化处理,处理完成后,将该servlet注入到servlet容器中;
2, 当client向web server或servlet容器请求servlet时,web server或servlet容器首先会根据请求的servlet名称去servlet容器中找对应的servlet,如果servlet不存在该名称对应的servlet,则向client响应请求不存在等信息,否则进行步骤3;
3, 如果请求的servlet存在于servlet容器,则调用servlet的service方法,生成动态资源,响应给client; (记住,整个过程该servlet只有一个实例,即单例);
4, 当web server退出或servlet容器销毁时,调用servlet的destroy方法,最后唯一的sevlet实例将会被GC.

servlet 规范中各interface的功能职责
Servlet: 这个就不用说了,Servlet的核心,具体Servlet中方法的处理规范可见以上描述的Servlet的生命周期
ServletConfig: 封装了对应的Servlet的相关配置信息,如servlet名字,servlet的初始参数以及Servlet所在的上下文对象,即ServletContext. ServletConfig中的属性通常在Servlet初始化时进行初始化.
ServletRequest: 封装了所有来自client端的请求信息,如请求参数、cookie、attribute、请求类型、请求方式(安全还是非安全等)等,同时ServletRequest中的还需要明确指定部分属性,如 请求内容的编码(可以自己设定)等. 进一步的解释,可以参照下一章对HttpServletRequest的分析.
ServletResponse: 封装了server端资源到client端的所有相关信息,如 资源传输的buffer信息、响应的url地址信息、资源的编码信息等.
ServletInputStream/BufferedReader: 读取ServletRequest所封装的信息的I/O接口,ServletInputStream,采用字节流的方式读取;BufferedReader,采用字符流的方式读取.
ServletOutputSteam/PrintWriter: 将资源写入到client的I/O接口.ServletOutputSteam,采用字节流的方式进行写入;PrintWriter,采用字符流的方式进行写入.
GenericServlet: 抽象类,它定义了一个Servlet的基本实现,虽然它是Servlet的基本实现,但是它是与协议无关的(即不依赖于http协议,也不依赖于其它应用层协议). 一般,基于协议的Servlet,如httpservlet,通常会继承该类.
RequestDispatcher:我们在搭建web应用的过程中,可能会有这样的需求: 在当前servlet中处理完成后,需要导向(forwar)另外一个servlet或静态资源(html或text等),或者 是在当前servlet的处理过程中,需要将其它的资源包含(include)到当前的servlet资源里来。而RequestDisaptcher 接口中的forward和inluce方法就提供了实现以上两个需求的机制. 关于RequestDispatcher的详细描述见后面章节.

版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

    Servlet学习笔记(java的Servlet)

    Servlet学习笔记(java的Servlet)。 jsp的学习基础。此笔记可让你5天内学会使用Servlet,可快速入门,也可当手册使用。 更多:http://download.csdn.net/user/daillo/all

    JSP&Servlet学习笔记.pdf

    本书是作者多年来教学实践经验的总结,汇集了教学过程中学生在学习JSP & Servlet时遇到的概念、操作、应用或认证考试等问题及解决方案。  本书针对Servlet 3.0的新功能全面改版,无论是章节架构与范例程序代码,都...

    JSP Servlet 学习笔记 第2版 林信良 随书光盘 共三卷

    JSP Servlet 学习笔记 第2版 林信良 随书光盘 第3卷

    林学良Jsp&Servlet学习笔记

    通过阅读这份笔记,你可以了解JSP和Servlet的基本语法、生命周期、以及如何将它们结合使用来创建动态Web应用。同时,HTML格式的文档易于阅读和理解,对于自学非常友好。 在实际学习过程中,你可能还会涉及到Web容器...

    Java相关课程系列笔记之九Servlet学习笔记

    Java相关课程系列笔记之九Servlet学习笔记 Java相关课程系列笔记之十JSP学习笔记 Java相关课程系列笔记之十一Ajax学习笔记 Java相关课程系列笔记之十二jQuery学习笔记 Java相关课程系列笔记之十三Struts2学习笔记 ...

    JSP_Servlet学习笔记(第2版).pdf

    Servlet学习笔记(第2版)》针对Servlet 3.0的新功能全面改版,无论章节架构还是范例程序代码,都做了全面更新,是作者多年来教学实践的经验总结,汇集了学员在教学过程中遇到的概念、操作、应用或认证考试上的各种...

    servlet 笔记

    ### Servlet基础知识及应用详解 #### 一、Servlet概述 Servlet是一种服务器端的Java技术,用于扩展应用程序的功能。它主要用于Web应用程序开发,可以处理客户端发送到Web服务器的各种请求,并且能够生成动态网页。...

    吉林大学珠海学院JSP&Servlet学习笔记(第二版)课后答案

    在第二章中,本笔记讨论了Servlet的基本概念,包括Servlet的定义、Servlet的生命周期、Servlet的请求和响应等。此外,本章节还介绍了Servlet的多线程模型、Servlet的 Session 管理等。 第三章集中讨论了JSP和...

    [JSP&Servlet;学习笔记(第2版)]

    本学习笔记将深入探讨这两个概念,以及它们如何协同工作以提供高效、灵活的Web服务。** **JSP简介:** JSP是一种服务器端的脚本语言,它允许开发者在HTML或XML文档中嵌入Java代码,从而实现动态内容的生成。JSP文件...

    韩顺平servlet笔记.rar下载

    韩顺平老师的Servlet笔记是对这一技术的深入讲解,旨在帮助学习者掌握Servlet的使用和概念。以下是对Servlet技术的详细说明: 1. **Servlet简介**:Servlet是Java Servlet API的实现,它提供了一种标准的方式来扩展...

    韩顺平 2011细说Servlet笔记

    韩顺平老师的“2011细说Servlet笔记”涵盖了这些核心概念和实践技巧,对于初学者来说是一份宝贵的参考资料。通过深入学习和实践,开发者可以熟练掌握Servlet的使用,从而更好地构建和维护Java Web应用。

    JSP-Servlet学习笔记第2版.pdf

    4. Servlet的原理与结构:Servlet是一个实现了特定接口的Java类,它能够响应客户端的请求并返回响应。需要理解Servlet接口以及如何通过继承GenericServlet和HttpServlet类来实现特定功能的Servlet。 5. Servlet的...

    JSP_Servlet学习笔记(第2版)

    时遇到的概念、操作、应用或认证考试等问题及解决方案。  本书针对Servlet 3.0的新功能全面改版,无论是章节架构与范例程序代码,都做了全面更新。书中详细介绍了Servlet/JSP与Web容器之间的关系,必要时从Tomcat源...

    韩顺平2011细说servlet完整笔记

    韩顺平2011细说servlet完整笔记 与韩顺平sevlet视频完美配套

    Servlet学习笔记

    ### Servlet学习笔记精炼知识点 #### 一、Servlet初始化与加载机制 1. **Servlet注册与实例化**:在Web应用中,一个Servlet的生命周期始于它的注册与实例化过程。通常,这一过程是在Web服务器启动时,根据`web.xml...

    韩顺平servlet和jsp课堂笔记

    总结,"韩顺平servlet和jsp课堂笔记"是一份宝贵的学习资源,不仅包含了Servlet和JSP的基本概念,还可能涵盖了许多实际开发中的案例和最佳实践。通过深入学习和实践,你将能够熟练运用这两个技术来构建高效、稳定的...

    servlet入门经典笔记

    Servlet是Java平台上的一个核心技术,它主要用于扩展Web服务器的功能,提供了一种安全、可移植且易用的方式来处理客户端的请求。Servlet的本质是Java类,它运行在服务器端,不依赖于特定的浏览器,而是通过Servlet...

Global site tag (gtag.js) - Google Analytics