首页 > 代码库 > J2EE请求与响应—Servlet

J2EE请求与响应—Servlet

    一、什么是Servlet?

    Servlet是运行Web服务器上的一个特殊Java类,其特殊用途是响应客户端请求并做出处理,使得客户端与服务器端进行交互。


    二、生命周期    

    Servlet生命周期是通过Web容器控制,主要分为以下几个阶段:



    1. 创建servlet的实例
    2. 初始化阶段,调用init()方法
    3. 响应请求,调用service()方法
    4. 销毁实例,调用destroy()方法
    5. 实例垃圾回收,调用finalize()方法

    三、Servlet中几个重要的方法:

   在Servlet生命周期中,servlet的初始化(init())和销毁阶段(destroy())只执行一次。Servic()方法是servlet的核心,主要是用来接收客户端请求并返回结果给客户端,每次客户端请求过来都被调用Service()方法,并且传递个这个方法一个“请求(servletRequest)对象和一个响应(servletResponse)对象做为参数”。


    doGet()方法

    当接收到Get请求时,Servlet的doGet()方法被调用。与GET 请求相关的参数添加到URL的后面,并与这个请求一起发送。当不会修改服务器端的数据时,应该使用doGet()方法。


    doPost()方法

    当接收到Post请求时,Servlet的doPost()方法被调用。与POST请求相关的参数作为一个单独的HTTP 请求从浏览器发送到服务器。当需要修改服务器端的数据时,应该使用doPost()方法。


    四、Servlet中的类:

    ServletRequestServletReponse在客户端请求过来的时候,调用Servlet时传递过来的。事实上,我们在创建Servlet类时通常使用的是HttpServletRequest和HttpServletReponse。他们分别代表从客户端而来的Http请求和处理请求的响应结果

 

    ServletConfig:从图上可以看出,当初始化一个Servlet对象时,就会为这个对象创建一个ServletConfig对象,在ServletConfig对象中包含了Servlet初始化参数信息。此外,Servlet容器在调用servlet对象的init(servletconfig)方法时,会把servletConfig对象当做参数进行传递给Servlet。

    ServletConfig接口提供方法,该方法返回:servlet名、Servlet上下文,初始化参数

  

    ServletContextServlet和Servlet容器之间进行通信的接口,其原理看下图:



    ServletContext存在于Web应用当中,当启动一个Web应用时,会自动创建一个ServletContext对象。每一个Web应用对应一个ServletContext对象。在Web应用当中可以存放Servlet或JSP。ServletContext提供全局访问,即所有的对象可以共享一个ServletContext。Servlet对象可以通过getServletContext()方法访问和操作容器中的各种资源。
 

    ServletConfig 与 ServletContext的区别

    1.作用范围:ServletContext作用于整个Web应用(相当于全局变量)ServletConfig作用于某个特定的Servlet对象,其他的Servlet不能访问。(相当于局部变量)


    2.参数的访问:ServletContext包含在ServletConfig中,在访问ServletContext时先调用ServletConfig中的getServletConfig()方法,得到里面的getServletContext()方法,然后再调用getInitParameter()方法就可以获取它的参数。

     访问ServletConfig参数,只需要调用getServletConfig()方法,然后调用getInitParameter()方法即可。 

   

   总结Servlet技术是JSP技术的基础,都是一种服务器端技术,是一种客户端与服务器端之间交互的体现。Servlet的核心是Service()方法,Service()方法将请求分派到doGest(),doPost()处理。