服务器端--Servlet基本知识总结

原创 2017年01月03日 19:06:59

Servlet 简介

Servlet是什么?

Servlet是一个Java编写的程序,此程序是基于Http协议的,并运行在web服务器上或者应用服务器上。它主要是作为web浏览器或其他Http客户端的请求与Http服务器上的数据库或应用程序之间的中间层。也就是,当客户机发送请求至服务器时,服务器可以将请求信息发送给 Servlet ,并让 Servlet 建立起服务器返回给客户机的响应。当启动 Web 服务器或客户机第一次请求服务时,可以自动装入 Servlet。装入后, Servlet 继续运行直到其它客户机发出请求。

使用 CGI技术可以实现同样的效果,但使用CGI技术开发起来过于复杂,且性能方面较差,只要有一个请求到达,Web服务器就会单独分配一个进程来进行处理导致,移植性不好,而Servlet不需要像CGI技术那样分配单独的进程来处理请求,而是单独分配一个线程来进行处理,提升了处理效率。并且Java语言是跨平台的语言,页提升了Web服务器扩展程序的可移植性,所以Servlet技术已经取代了CGI技术,成为B/S架构中的主流技术

 

Servlet 功能

Servlet 可完成如下功能:

(1) 创建并返回一个包含基于客户请求性质的动态内容的完整的 HTML 页面。

(2) 创建可嵌入到现有 HTML 页面中的一部分 HTML 页面( HTML 片段)。

(3) 与其它服务器资源(包括数据库和基于 Java 的应用程序)进行通信。

(4) 用多个客户机处理连接,接收多个客户机的输入,并将结果广播到多个客户机上。例如, Servlet 可以是多参与者的游戏服务器。

(5) 当允许在单连接方式下传送数据的情况下,在浏览器上打开服务器至 applet的新连接,并将该连接保持在打开状态。当允许客户机和服务器简单、高效地执行会话的情况下, applet 也可以启动客户浏览器和服务器之间的连接。可以通过定制协议或标准(如 IIOP )进行通信。

(6) 对特殊的处理采用 MIME 类型过滤数据,例如图像转换和服务器端包括( SSI )。

(7) 将定制的处理提供给所有服务器的标准例行程序。例如, Servlet 可以修改如何认证用户。

 

Servlet原理

 

Servlet作为补充Web服务器功能的组件,需要依赖于Servlet容器才能运行。能够充当Servlet容器这个角色的有很多软件,如Tomcat、Weblogic、JBoss等。而这些Servlet容器不仅仅具备了管理Servlet组件的功能,也具备了Web服务器的一些功能,所以很多时候只要安装一个Tomcat软件就同时具备了Web服务器及Servlet容器的双重功能。

在浏览器中输入请求地址后,浏览器会依据IP地址及端口号找到对应的Web服务器,如果请求的是静态资源,Web服务器直接提供响应;如果请求的是动态资源,Web服务器的通信模块会将该请求传递给Servlet容器的通信模块,Servlet容器负责创建Servlet实例,并将请求中的数据解析出来传递给Servlet。在Servlet处理完数据之后,响应结果也是由容器的通信模块负责返回给Web服务器。后续的Servlet的销毁及管理都由容器来负责。


Servlet生命周期

Servlet的生命周期是由Servlet的容器来控制的,它可以分为3个阶段;初始化,运行,销毁。

首先,第一个到达服务器的Http请求被委派到Servlet容器中,Servlet容器在调用service()方法之前会先加载一个Servlet对象,调用初始化方法进行初始化,初始化操作执行进行一次,在后续的请求中不会再调用初始化方法;然后Servlet容器处理由多条线程产生的多个请求,每个线程执行一个单一的 Servlet 实例的 service() 方法;请求处理完将输出结果返回客户端,无请求时Servlet容器调用destory()进行释放资源的操作,具体如下:


  • 初始化阶段:

    1,Servlet容器加载servlet类,把servlet类的.class文件中的数据读到内存中。

    2,然后Servlet容器创建一个ServletConfig对象。ServletConfig对象包含了Servlet的初始化配置信息。

    3,Servlet容器创建一个servlet对象。

    4,Servlet容器调用servlet对象的init方法进行初始化,初始化方法只调用一次,在后续的用户请求中将不再调用。


  • 运行阶段:
  • 每次服务器接收到一个Servlet请求时,服务器会产生一个新的线程并调用服务方法。service()方法检查 HTTP 请求类型(GET、POST、PUT、DELETE 等),并在适当的时候调用 doGet、doPost、doPut,doDelete 等方法。
  • 当servlet容器接收到一个请求时,servlet容器会针对这个请求创建servletRequest和servletResponse对象。

    然后调用service方法,并把这两个参数传递给service方法。Service方法通过servletRequest对象获得请求的

    信息并处理该请求,再通过servletResponse对象生成这个请求的响应结果。


  • 销毁阶段:

    当Web应用被终止时,servlet容器会先调用servlet对象的destrory方法,销毁servlet对象以及与servlet对象相关联的servletConfig对象。同时也可以在destroy方法中实现释放资源的操作,如关闭数据库连接,关闭文件输入输出流等。


  • 如图所示:




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

相关文章推荐

servlet技术的基本知识

  • 2011-05-24 19:54
  • 457KB
  • 下载

Servlet的基本知识

  • 2012-08-01 13:49
  • 12KB
  • 下载

Servlet接口基本知识

Servlet接口:  Servlet是一种实现了javax.servlet.Servlet接口的类。  Servlet接口规定了特定的方法来处理特定的请求,作为开发者只需要去实现Servlet的...

服务器基本知识1

  • 2015-08-19 16:45
  • 2.83MB
  • 下载

Servlet 入门基本知识 (一)

Servlet(Server Applet),全称Java Servlet,未有中文译文。是用Java编写的服务器端程序。其主要功能在于交互式地浏览和修改数据,生成动态Web内容。狭义的Servlet...

servlet 入门基本知识 (二)

tomcat和servlet 在网络中的位置 开发Servlet有三种方法: a.实现Servlet接口 b.继承GenericServlet c.继承HttpServlet ...

servlet基本知识点

Serlvet接口只定义了一个服务方法就是service,而HttpServlet类实现了该方法并且要求调用下列的方法之一: doGet:处理GET请求 doPost:处理POST请求 当...

U3D服务器端开发知识点总结

U3D服务器端开发知识点总结写在前面: 这篇文章会比较杂,针对服务器端遇到的问题或比较重要的知识点,搞清楚了之后加入自己的理解记录下来,也就是我自己的一些个知识点总结笔记。 一、 TCP/IP三...

代理服务器基本知识普及代理IP使用方法!(转)

转载: http://www.pltan.net/simple/index.php?t7219438.html扫盲篇: 什么是代理服务器?   代理服务器是介于浏览器和Web服务器之间的一台服务器,当...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)