Servlet工作原理

Servlet是服务端的组件,servlet运行在servlet容器中,比如tomcat, 
在收到客户端请求的时候,容器把请求信息封装为Request对象,并创建Response对象, 
传给serlet的service()方法,真正要实现的功能可以在service()调用java代码。 

说到这些,就不能不提一下几个内建对象的作用范围。 

Request和Response对象:时间上再一次请求中,在这次请求中把Request中的信息传给别的资源,空间上只能是发送请求的客户端有效 

HttpSession:一次连接直到客户端关闭,时间上比上面的对象长一些,空间上一致 

ServletCofig:是在一个servlet实例化,对任何客户端任何时间都有效,但是只对本servlet有效。 

ServletContext:对任何客户端任何时间任何sevlet有效,是真正的全局变量。 

ServletCofig和ServletContext是我们的程序更加灵活,避免了硬编码,就是配置文件啦 

可以通过getInitParameter()方法访问,获得配制文件信息,如getInitParameter("paramvalue") 

request.getHeaderNames();//获取头信息 

1 .首先,什么是Servlet? 
       Servlet是一个Java编写的程序,此程序是在服务器端运行的,是按照Servlet规范编写的一个Java类。 
   2.Servlet是做什么的? 
       Servlet是处理客户端的请求并将其发送到客户端。 
   3.Servlet API 
   1>Servlet框架的组成 
        Servlet框架是由2个Java包组成:(1)javax.servlet和(2)javax.servlet.http 
       (1)javax.servlet包中定义了所有Servlet类都必须实现的接口和类。 
          javax.servlet包的接口为: 
                            ServletConfig接口  ---- 在初始化过程中由Servlet容器使用 
                            ServletContext接口  ---- 定义Servlet用于获取容器信息的方法 
                            ServletRequest接口 ---- 向服务器请求信息 
                            ServletResponse接口 ----  响应客户端请求 
                             Servlet接口  ---- 定义所有Servlet必须实现的方法 
          javax.servlet包中的类为: 
                              ServletInputStream类  ---- 用于从客户端读取二进制数据 
                              ServletOutputStream类  ---- 用于将二进制数据发送到客户端 
                               GenericServlet类  ---- 抽象类,定义一个通用的,独立于地层协议的Servlet。 

       (2)javax.servlet.http包中定义了采用HTTP通信的HttpServlet类。 
          javax.servlet.http包的接口为: 
                         HttpServletRequest接口  ---- 提供http请求 
                         HttpServletResponse接口  ---- 提供http响应 
                         HttpSession接口  ---- 用于标识客户端并存储有关客户信息 
                         HttpSessionAttributeListener接口  ----实现这个侦听接口用户获取会话的属性列表的改变的通知 
          javax.servlet.http包中的类: 
                         HttpServlet类 ---- 扩展了 GenericServlet的抽象类,用于扩展创建Http Servlet 
                          Cookie类  ---- 创建一个Cookie,用于存储Servlet发送给客户端的信息 
                                                      
   2>Servlet框架的核心 
        Servlet框架的核心是:javax.servlet.Servlet接口,所有的Servlet都必须实现这一接口。 
   4.Http Servlet 
       HttpServlet是一个抽象类,用来创建用户自己的 HTTP Servlet。HttpServlet类的子类必须至少重写一下方法中的一个:doGet()和doPost()。 

      HttpServlet类提供doGet()方法来处理GET请求 
        public void doGet(HttpServletRequest req,HttpServletResponse res) 
              提供doPost()方法处理POST请求  
        public void doPost(HttpServletRequest req,HttpServletResponse res) 
        其中有2个参数:HttpServletRequset和HttpServlerResponse 
         这2个类实现了ServlerRequset接口和ServletResponse接口 
        ServletRequest接口中封装了客户请求信息<客户请求方式,参数名,参数值等> 
        ServletResponse接口 为 Servlet提供了返回相应结果的方法。 
     5.Servlet体系结构 
          Servlet-->GenericServlet-->HttpServlet-->用户自定义的Servlet 
     6.Servlet的生命周期 
         Servlet的生命周期由Servlet容器控制,该容器创建Servlet的实例。 
         Servlet生命周期就是指创建Servlet实例后响应客户请求直至销毁的全过程。 
         1>Serlvet生命周期的三个方法:init()-->service()-->destroy() 
         2>生命周期的各个阶段: 
            实例化:Servlet容器创建Servlet类的实例对象 
            初始化:Servlet容器调用Servlet的init()方法 
            服务:如果请求Servlet,则容器调用service()方法 
            销毁:销毁实例之前调用destroy()方法 
            不可用:销毁实例并标记为垃圾处理 
阅读更多
个人分类: java web
想对作者说点什么? 我来说一句

Servlet生命周期与工作原理

2013年09月12日 17KB 下载

没有更多推荐了,返回首页

不良信息举报

Servlet工作原理

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭