J2EE的13 规范之解读Servlet
Servlet 是甚么?
第1,Servlet是1种规范,由Sun公司制定的服务器端组件规范。 第2,Servlet 可以运行在web服务器或利用服务器上。 第3,Servlet由Servlet容器进行管理,可实现诸如“实例化并管理Servlet对象”、“调用Servlet生命周期方 法”、“解析及封装特定协议的要求和响应”等工作。 第4,作为来自 Web 阅读器的要求和 数据库或利用程序之间的中间层,Servlet可以搜集来自网页的用户请 求,显现来自数据库或其他源的记录,可实现动态创建网页。
Servlet 架构图
下图显示了 Servlet 在 Web 利用程序中的位置。 Servlet生命周期
Servlet 生命周期可定义为其从创建直到烧毁的全部进程。当用户调用1个 Servlet 时,就会创建1个 Servlet 实例,每个用户要求都会产生1个新的线程。 以上是 Servlet 生命周期遵守的进程。
现在让我们详细讨论生命周期的方法。
Servlet 方法解读
init() 方法 init 方法被设计成只调用1次。它在第1次创建 Servlet 时被调用,在后续每次用户要求时不再调用。因此,它 是用于1次性初始化,init() 方法简单地创建或加载1些数据,这些数据将被用于 Servlet 的全部生命周期。 init 方法的定义以下:
<span style="font-family:SimSun;">public void init() throws ServletException {
// 初始化代码…
}
</span>
service() 方法 service() 方法是履行实际任务的主要方法。Servlet 容器调用 service() 方法来处理来自客户端(阅读 器)的要求,并把格式化的响应写回给客户端。 每次服务器接收到1个 Servlet 要求时,服务器会产生1个新的线程并调用服务。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 要求来自于1个 URL 的正常要求,或1个未指定提交方式 的 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 要求来自于1个特别指定了提交方式为 POST 的 HTML 表单,它由 doPost() 方法处理。
<span style="font-family:SimSun;">public void doPost(HttpServletRequest request,HttpServletResponse response)
throws ServletException,IOException {
// Servlet 代码
}
</span>
destroy() 方法 destroy() 方法只会被调用1次,在 Servlet 生命周期结束时被调用。destroy() 方法可使 Servlet 关闭数据库连接、停止后台线程、把 Cookie 列表或点击计数器写入到磁盘,并履行其他类似的清算活动。 在调用 destroy() 方法以后,servlet 对象被标记为垃圾回收。destroy 方法定义以下所示:
<span style="font-family:SimSun;">public void destroy() {
// 终止化代码…
}
</span>
初次接触Servlet,可以把它理解为 .NET 中的Handler,由于他们有着类似的作用:都可用来处理客户端发送的请 求,让前台与业务逻辑松耦合,并且实现动态网页的创建。 由于认知的不足,只能说先这么理解。具体是否是这样还需要实际利用深入了解后才能做出判断。 现在学习新 知识的时候很希望从本来学过的知识中找到1些对应的影子,虽然不是那末对应,也有可能这么理解是毛病的,但是 随着不断的深入学习,我们也会自但是然的校订这些偏差,留下更深入的印象。
仅供参考,希望不要误导大家。
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |