当前位置:编程学习 > JS >>

Servlet框架基础和生命周期(结合源码)、destroy()的思考

  前言
                 Servlet是一个java编写的程序,此程序是在服务器端运行的,是按照Servlet规范编写的一个

             java类。Servlet是处理客户端的请求,并将处理结果以响应的方式返回给客户端。Servlet框架

             是怎样的呢?它的生命周期又是什么情况呢?这是本文需要探求的。

         Servlet框架
                 网上下载Servlet源码,解压之后发现其由两个包组成:

                         1、javax.servlet

                         2、javax.servlet.http


            javax.servlet
                  此包中定义了所有Servlet类都必须实现的接口或类。

                  接口定义:


                  ServletConfig接口---在初始化过程中由Servlet容器(Tomcat调用)

                  ServletContext接口---定义Servlet用于获取容器信息的方法

                  ServletRequest接口---向服务器请求信息

                  ServletResponse接口 ---响应客户端请求

                  Servlet接口---定义所有的Servlet必须实现的方法

                  类定义:

                  ServletInputStream类 --- 用于从客户端读取二进制数据

                  ServletOutputStream类 ---用于将二进制数据写入到客户端

                  GenricServlet--- 抽象类,定义一个通用的,独立于底层协议的servlet。

            java.servlet.http
                  此包中定义了使用HTTP通信协议的所有Servlet类应该实现的类、接口。

                  接口定义:

                   HttpServletRequest接口 --- 封装http请求

                   HttpServletResponse接口 --- 封装http响应

                   HttpSession接口 --- 用于表示客户端存储有关客户的信息

                   HttpSessionAttributeListener接口---实现这个监听接口,当用户获取Session的属性列表发生

                                                             改变的时候得到通知。

                   类的定义:

                   HttpServlet类 --- 扩展了GenericServlet的抽象类

                   Cookie类 --- 创建一个Cookie,Cookie技术,用户存储服务器发送给客户端的信息。

               通过阅读Servlet框架源码,其主要的框架结构如下图:

              

             Servlet工作过程
                        通过上述Servlet框架的了解我们可以初步描述一下Servlet在Tomcat容器中是如何工作的。

                   来看下面的时序图:

                


                    1、Web Client 向Servlet容器(Tomcat)发出Http请求

                    2、Servlet容器接收Web Client的请求


                    3、Servlet容器创建一个HttpRequest对象,将Web Client请求的信息封装到这个对象中

                    4、Servlet容器创建一个HttpResponse对象

                    5、Servlet容器调用HttpServlet对象的service方法,把HttpRequest对象与HttpResponse

                        对象作为参数传给 HttpServlet对象

                   6、HttpServlet调用HttpRequest对象的有关方法,获取Http请求信息

                   7、HttpServlet调用HttpResponse对象的有关方法,生成响应数据

                   8、Servlet容器把HttpServlet的响应结果传给Web Client

                Tomcat和HttpServlet是如何进行交互的呢?从源码中我们可以得到

                

            Servlet生命周期

                       在Servlet框架中所有的Servlet类都必须实现Servlet这个接口。其中定义了三个方法:

                            1、init方法:负责初始化Servlet对象。

  &n

补充:Web开发 , Jsp ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,