一、概念:
1.Servlet是一种服务器端的Java应用程序,具有独立于平台和协议的特性,可以生成动态的Web页面。
2.担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。
3.Servlet由Web服务器进行加载,该Web服务器必须包含支持Servlet的Java虚拟机。
(Servlet是位于Web 服务器内部的服务器端的Java应用程序,与传统的从命令行启动的Java应用程序不同)
WEB服务器:Web Server
是Web(互联网)上的一台或多台机器。部署了系统软件以及需要在网络中共享的信息。客户端可以通过HTTP协议访问部署到服务器上的资源。
应用服务器:Application Server
网络上的一台或多台机器。部署了系统软件用以为客户端及其它的服务器比如Web服务器提供数据服务、业务处理服务等。
常见的应用服务器:文件服务器、打印服务器以及运行着EJB组件的EJB服务器等。
Servlet容器:Servlet Container
1.是Web服务器或应用服务器的组成部分,为Servlet提供请求和响应的服务,同时负责管理Servlet的生命周期。
2.可以集成到Web服务器或应用服务器中,也可以作为独立的程序嵌入到Web服务器或应用服务器中。
3.可以为Servlet提供其它的服务,比如资源服务、安全服务、线程的服务等
二、servlet作用:
1.Servlet规范通过规定一个编程的框架来达到扩展服务器功能的目的,采用请求-响应模式提供基于Web的服务。
2.当客户机发送请求至服务器时,服务器将请求信息转发给Servlet,Servlet处理请求并生成响应内容并传给Web服务器,然后再由Web服务器将响应返回给客户端。
三、servlet流程:
说明:
① 客户端(通常为Web浏览器)向Web服务器发送一个基于HTTP协议的请求。
② Web服务器接收到该请求,并将请求交给Servlet容器处理。
③ Servlet容器根据Servlet的配置来查找或创建Servlet的实例,并执行该Servlet,Servlet容器必须把客户端请求和响应封装成Servlet规范中规定的请求和响应对象传给Servlet。
④ Servlet可以使用请求对象获取客户端的信息,比如IP地址、请求的参数等,以及执行特定的业务逻辑。Servlet可以使用响应对象向客户端发送业务数据及业务执行的结果。
⑤ Servlet处理完该请求后,Servlet容器要保证Servlet的响应内容能够发送到客户端去(flush),最后返回到Web服务器。
注:
⑴ Servlet不可以独立运行。
Servlet必须运行在Servlet容器中,由容器调用它的生命周期方法。因此,Servlet不需要main方法。
⑵ Servlet不是线程。
Servlet是一个普通的Java对象,它实现了Servlet接口,没有继承于Thread,因此Servlet不是线程。
当服务器接收到客户端请求时,它会在一个单独的线程中来执行Servlet的方法。