Servlet
文章内容来自大连海事大学于卫红老师的PPT,仅供学习。
概述
Servlet技术是在服务器端生成动态网页的一种方式。
实例化了的Servlet对象运行在服务器端,用于处理来自客户端的请求。
优点
- 易开发:支持内置对象(如request等),Servlet API的应用不需要处理参数传递及解析;
- 可移植:Servlet具有Java应用程序的优势;
- 节省内存和CPU资源的消耗:一个Servlet进程被客户端发送的第一个相应请求激活,直到Web Server卸载时才被卸载。在这个期间,该Servlet进程一直在等待以后请求。每当一个相应请求到达时生成一个新的线程,这样一个进程可以服务多个客户。
Servlet容器
Servlet容器是Web服务器或Java EE应用服务器的一部分。
Servlet不能独立运行,它必须被部署到Servlet容器中,由容器来实例化和调用Servlet的方法,Servlet容器在Servlet的生命周期内管理Servlet。
一个来自于客户端的Servlet请求一般按如下顺序被响应:
1)Servlet容器检测是否已经装载并创建了该Servlet的实例对象。如果是,则直接执行4),否则,执行2)。
2)装载并创建该Servlet的实例对象。
3)调用Servlet实例对象的init()方法。
4)创建一个用于封装HTTP请求消息的HttpServletRequest对象和一个代表响应消息的HttpServletResponse对象,然后调用Servlet的service()方法,并将上述请求和响应对象作为参数传递进去。
Web应用程序被停止或重新启动之前,Servlet容器将卸载Servlet,并在卸载之前调用Servlet的destroy()方法。
Servlet规定,相应客户访问特定servlet流程如下:
1.客户端发出请求。
2.Servlet容器接收客户请求解析。
3.Servlet容器创建一个ServletRequest对象。其中包含客户请求信息及其他关于客户的信息如请求头,请求正文,客户机的IP等。
4.容器创建一个ServletResponse对象。
5.容器调用客户请求的Servlet的service方法,并且把ServletRequest和ServletResponse作为参数传入。
6.Servlet从客户参数中获得客户请求信息。
7.Servlet利用ServletResponse对象来生产相应结果。
8