标签:
首先我们要理解什么是Server,Server是指任何在网络上允许用户文件访问、打印、通讯及其他服务的计算机和集群。
Servlet是由Java编写在Server端的程序,与协议和平台无关独立于客户端和服务器之外的类似于解决问题的中心。
Servlet运行于Java-enabled Web Server中,从之前对Server的定义中可以知道,作为Server服务器,它的主要功能就是允许用户文件访问、打印、通讯及其他服务的计算机,更多的是在于硬件上的连接部分,而Java Servlet可以动态地扩展Server的能力,就像给Server增加了插件或组件那般,并采用请求-响应模式提供Web服务。
Servlet的主要功能在于交互式地浏览和修改数据,生成动态Web内容。这个过程为:
客户端发送请求至服务器端;
服务器将请求信息发送至Servlet;
根据客户端的请求,Servlet动态生成响应内容,并将其传给Server;
服务器将响应返回给客户端 。
在Servlet出现之前,客户端和Server交换数据,可是功能稀少,不能满足客户端所请求的功能,然后人们就想到了一个方式,通过一个第三方的东西来处理这无法解决的问题,此时java的Servle就出现了,客户端“用户”将请求交给Server,Server将无法处理的问题扔给“下属”Servlet去完成,然后“下属”完成后将结果给回Server“上司”,“上司”在处理结果上冠名之后给“用户”。
如果“上司”对“下属”的技能水平不满意,则可以让他去学习新知识,此时意味着Servlet的功能动态扩展,甚至可以换一个“下属”。
Servlet需要知道的仅仅有如何对“上司”负责,怎么与“上司”交流,还有处理请求,所以对于Server来说,需要一个接口包,可以说就如同java程序那般,需要一个API的接口,此外,很多时候Servlet是可以学习的,他分担了Server的任务,使得我们不用直接在Server上添加功能,只需要一个接口,使得开发的难度大大降低,也减少了维护的复杂度。
Servlet就像一个职员那般,帮助老板去和其他部门或者职员交流、传达信息。Servlet可以对文件、数据库、Applet、Java应用程序等等进行交互,然后返回数据给Server以满足客户端请求,Server可以授权Servlet访问许多资源,譬如对数据库的访问存储响应客户端的信息,等等。
此外,Servlet还可以增殖自身,或者跟更多的Servlet交流,就像一个小组那样,这样就大大加强了其功能。
我们知道Servlet的生命周期有以下几种:
Server创建Servlet的实例;
Server调用Servlet的init()方法 ;
客户端的请求到达Server ;
Server创建请求对象 ;
Server创建响应对象 ;
Server激活Servlet的service()方法,然后传递请求与响应对象作为参数 ;
service()方法取得关于请求对象的信息,处理请求,访问其他资源(如数据库),获得需要的信息 ;
service()方法使用响应对象的方法,将响应传回Server,Server冠名后最终到达客户端。
此外,service()方法可能激活其它方法以处理请求,如doGet()或doPost()或程序员所建立的新方法 。
因此对于更多的客户端请求,Server创建新的请求和响应对象,仍然激活此Servlet的service()方法,将多个对象作为参数传递给它。此时通过重复1~8的循环处理,但无需再次调用init()方法。在Servlet初始化之后,“上司”见到其“下属”完成任务不需要后,此时,Server会调用Servlet的Destroy()方法,“下属”就放假了。
标签:
原文地址:http://blog.csdn.net/u021165809/article/details/42177679