码迷,mamicode.com
首页 > 其他好文 > 详细

J2EE的13 规范之解读Servlet

时间:2015-01-20 22:16:40      阅读:232      评论:0      收藏:0      [点我收藏+]

标签:

 

  Servlet 是什么?

 

  第一,Servlet是一种规范,由Sun公司制定的服务器端组件规范。

  第二,Servlet 可以运行在web服务器或应用服务器上。

  第三,Servlet由Servlet容器进行管理,可实现诸如“实例化并管理Servlet对象”、“调用Servlet生命周期方

法”、“解析及封装特定协议的请求和响应”等工作。

  第四,作为来自 Web 浏览器的请求和 数据库或应用程序之间的中间层,Servlet可以收集来自网页的用户请

求,呈现来自数据库或者其他源的记录,可实现动态创建网页。

 

  

 

    Servlet 架构图

 

  下图显示了 Servlet 在 Web 应用程序中的位置。

                          技术分享

  Servlet生命周期

 

  Servlet 生命周期可定义为其从创建直到销毁的整个过程。当用户调用一个 Servlet 时,就会创建一个 Servlet

实例,每一个用户请求都会产生一个新的线程。技术分享

  以上是 Servlet 生命周期遵循的过程。

  •  通过调用init ()方法进行初始化。
  •  调用service()方法来处理客户端的请求。
  •  通过调用destroy()方法终止(结束)。
  •  最后,Servlet 是由 JVM 的垃圾回收器进行垃圾回收的。

  现在让我们详细讨论生命周期的方法。

 

  Servlet 方法解读

 

  init() 方法

  init 方法被设计成只调用一次。它在第一次创建 Servlet 时被调用,在后续每次用户请求时不再调用。因此,它

是用于一次性初始化,init() 方法简单地创建或加载一些数据,这些数据将被用于 Servlet 的整个生命周期。

  init 方法的定义如下:

  

<span style="font-family:SimSun;">public void init() throws ServletException {

  // 初始化代码…

  }
</span>

      

    service() 方法

  service() 方法是执行实际任务的主要方法。Servlet 容器调用 service() 方法来处理来自客户端(浏览

器)的请求,并把格式化的响应写回给客户端。

  每次服务器接收到一个 Servlet 请求时,服务器会产生一个新的线程并调用服务。service() 方法检查 HTTP

请求类型(GET、POST、PUT、DELETE 等),并在适当的时候调用 doGet、doPost、doPut,doDelete 等方法。

  方法定义:

<span style="font-family:SimSun;"><span style="font-size:18px;">public void service(ServletRequest request,ServletResponse response) 
      throws ServletException, IOException{
}
</span></span>

  service() 方法由容器调用,service 方法在适当的时候调用 doGet、doPost、doPut、doDelete 等方法。

所以,我们不用对 service() 方法做任何动作,您只需要根据来自客户端的请求类型来重载 doGet() 或

doPost() 即可。

 

  

  doGet() 方法

  GET 请求来自于一个 URL 的正常请求,或者一个未指定提交方式 的 HTML 表单,它由 doGet() 方法处理。

  

<span style="font-family:SimSun;"><span style="font-size:18px;">public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    // Servlet 代码
}
</span></span>


 

  doPost() 方法

  POST 请求来自于一个特别指定了提交方式为 POST 的 HTML 表单,它由 doPost() 方法处理。

  

<span style="font-family:SimSun;">public void doPost(HttpServletRequest request,HttpServletResponse response)

  throws ServletException, IOException {

  // Servlet 代码

  }
</span>

    

    destroy() 方法

  destroy() 方法只会被调用一次,在 Servlet 生命周期结束时被调用。destroy() 方法可以使 Servlet

关闭数据库连接、停止后台线程、把 Cookie 列表或点击计数器写入到磁盘,并执行其他类似的清理活动。

  在调用 destroy() 方法之后,servlet 对象被标记为垃圾回收。destroy 方法定义如下所示:

  

<span style="font-family:SimSun;">public void destroy() {

  // 终止化代码…

  }
</span>

  

 

 

 

    初次接触Servlet,可以把它理解为 .NET 中的Handler,因为他们有着类似的作用:都可用来处理客户端发送的请

求,让前台与业务逻辑松耦合,并且实现动态网页的创建。

  由于认知的不足,只能说先这么理解。具体是不是这样还需要实际应用深入了解后才能做出判断。  现在学习新

知识的时候很希望从原先学过的知识中找到一些对应的影子,尽管不是那么对应,也有可能这么理解是错误的,但是

随着不断的深入学习,我们也会自然而然的校正这些偏差,留下更深刻的印象。

 

 

  仅供参考,希望不要误导大家。

 

J2EE的13 规范之解读Servlet

标签:

原文地址:http://blog.csdn.net/u010028869/article/details/42928469

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!