`
ye_haiqiang
  • 浏览: 88769 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

servlet 基础(2)

    博客分类:
  • J2EE
阅读更多

这一节我们进一步来了解下servlet------servlet的生命周期!

1、加载和实例化--servlet容器创建servlet的实例

2、初始化--该容器调用init()方法

3、服务--如果请求servlet,则容器调用service()方法

4、销毁--销毁实例之前调用destroy()方法

接下来我们来仔细的讨论下:

一、加载和实例化

servlet容器负责加载和实例化servlet,当客户端发送一个请求时,Servlet容器会查找到内存中是否存在servlet实例,如果不存在,就创建一个servlet实例。如果存在,就直接从内存中取出该实例来响应请求。(补充:什么事servlet容器呢?答:servlet容器(servlet引擎)是web服务器或者应用服务器的一部分,用于在发送的请求和响应之间提供网络服务,即:tomact)

二、初始化

servlet容器加载好servlet后,必须进行初始化,初始化servlet时。可以设置数据库连接参数,建立JDBC连接,或者是建立对其他资源的引用。在初始化阶段,init()方法被调用。这个方法在javax.servlet.Servlet借口中定义。

三、服务

servlet被初始化以后,就处于能响应请求的就绪状态。每个对servlet的请求都由一个servlet request对象代表。servlet给客户端的响应由一个servlet response 对象代表。当客户端有一个请求时,servlet 容器将servlet request和servlet response 对象都转发给servlet,这两个对象以参数的形式传给service()方法。在service()内,对客户端的请求方法进行判断,如果为get方法提交,就调用doGet()方法处理请求。如果是post方法提交。就调用doPost()方法处理请求。

四、销毁

servlet的实例是由servlet容器创建的,所以实例的销毁也是容器来完成的,servlet容器判断一个servlet应当被释放时(容器关闭或需要回收资源),容器必须让servlet释放其正在使用的任何资源。这些都是由容器调用servlet的destroy()方法实现的。destroy()方法指明哪些资源可以被系统回收,而不是由destroy()方法来直接进行回收。

接下来我们通过一个例子来解析下:

eg:

 package com.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class TestServlet extends HttpServlet {

 /**
  * 构造方法
  */
 public TestServlet() {
  super();
 }
 
 /**
  * 初始化
  */
 public void init() throws ServletException {
  System.out.println("初始化时,init()方法被调用!!!");
 }

 /**
  * doGet()方法
  */
 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  
  System.out.println("处理请求时,doGet()方法被调用!!");
  
  //将日期转换为特定格式的字符串
  Date date=new Date();
  SimpleDateFormat formater=new SimpleDateFormat("yyyy年MM月dd日");
  String strTime=formater.format(date);
  
  //设定输出内容为html,字符集为utf-8
  response.setContentType("text/html;charset=utf-8");
  
  //使用打印输出流,向客户端输出信息
  PrintWriter out = response.getWriter();
  out.println("<HTML>");
  out.println("  <HEAD><TITLE>Test Servlet</TITLE></HEAD>");
  out.println("  <BODY>");
  out.println("你好!ye_haiqiang! "+strTime);
  out.println("  </BODY>");
  out.println("</HTML>");
  out.flush();
  out.close();
 }

 /**
  *doPost()方法
  */
 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  
  //调用doGet()方法
  doGet(request,response);
 }

 /**
  * 销毁(用于释放资源)
  */
 public void destroy() {
  super.destroy();
  System.out.println("释放系统资源时,destroy()方法被调用!");
 }

}
解析过程:

部署项目,启动tomcat,在浏览器输入:http://localhost:8089/Test/servlet/TestServlet

这时候页面就会显示:

 

图片

这个时候我们在控制台(Console)看到如下图所示:

 

图片

刷新下页面就会看到:(多出了:“处理请求时,doGet()方法被调用!!”这条信息!)

可见当再次提交时servlet init()方法没有被执行,这说明init()方法只有在加载当前的servlet时才被执行,并且只执行一次。(servlet类其实就是单例模式)

图片

那什么时候调用destroy()方法呢??

接下来!我们关掉tomcat服务!

这时候就会在控制台出现:“释放系统资源时,destroy()方法被调用!”这条信息!

图片

好了!看了这个例子大家应该对servlet周期有所理解吧!

每天一点点,希望对大家有利!

分享到:
评论

相关推荐

    Servlet基础知识总结

    ### Servlet基础知识总结 #### 一、Servlet简介 Servlet是一种服务器端的小程序,是Java平台上的一个重要的技术之一,主要用于处理客户端的HTTP请求并生成动态网页。Servlet是在服务器端运行的,能够提供各种服务...

    Servlet基础 Servlet基础 Servlet基础 Servlet基础 Servlet基础

    在Servlet编程中,`GenericServlet`是最基础的抽象类,它实现了Servlet接口,而大多数HTTP相关的Servlet会继承`HttpServlet`。`HttpServlet`提供了针对HTTP请求方法的抽象方法,如`doGet`和`doPost`。开发者通常需要...

    servlet基础与servlet容器模型

    总的来说,Servlet基础知识和Servlet容器模型构成了Java Web开发的核心部分。掌握这些概念有助于理解Web应用的工作原理,以及如何在实际项目中有效地使用Servlet和容器提供的功能。通过深入学习和实践,开发者可以...

    jsp/servlet基础课件

    **学习JSP和Servlet基础,你需要理解它们的基本概念、生命周期、API使用以及如何协作处理Web请求。此外,熟悉EL和JSTL,以及如何在实际项目中应用MVC模式,对于提升开发效率和代码质量至关重要。本课件将逐步引导你...

    Servlet基础补充案例 习题.doc

    Servlet 基础补充案例习题 在本节中,我们将探讨 Servlet 基础补充案例习题,旨在掌握实际开发中 Servlet 程序的基本实现和使用。我们将通过两个案例,分别演示如何编写基于 HTTP 协议的 Servlet 程序,并掌握 ...

    北大青鸟 Servlet 基础 PPT

    因此,可以说Servlet是JSP技术的基础,因为JSP最终也是通过Servlet来实现其功能的。 处理HTTP请求的方法主要有两种:GET和POST。GET请求通常用于获取资源,其参数会显示在URL中,而POST请求则常用于向服务器提交...

    Servlet基础Demo

    在本教程"Servlet基础Demo"中,我们将深入理解Servlet的工作原理,以及如何创建和运行一个简单的Servlet应用。 首先,Servlet是一个Java类,它实现了Servlet接口或者HttpServlet类,后者是Servlet接口的一个实现,...

    servlet基础笔记

    在本文中,我们将深入探讨Servlet的基础知识,包括其基本概念、生命周期、部署以及如何进行实际开发。 一、Servlet基本概念 Servlet是一种Java类,它扩展了服务器的功能,可以处理来自客户端(通常是浏览器)的请求...

    servlet基础入门教程

    Servlet基础入门教程 Servlet是Java Web开发中的一个关键组件,它是服务器端的程序,用于处理来自客户端(如浏览器)的请求并返回响应。本教程旨在为初学者提供一个全面的Servlet入门指南,涵盖其基本概念、方法及...

    servlet基础教程

    ### servlet基础教程知识点详解 #### 一、Servlet简介与特点 **Servlet** 是服务器端的一种小型程序,主要用于处理客户端发送的HTTP请求,并返回相应的HTTP响应。它与客户端的小程序 **Applet** 相对应,主要区别...

    Servlet基础源代码

    在"Servlet基础源代码"的学习中,你将接触到以下关键知识点: 1. **Servlet生命周期**:Servlet的生命周期包括加载、实例化、初始化、服务、销毁等阶段。当服务器启动或第一次接收到对Servlet的请求时,会加载并...

    JavaWeb - Servlet 基础教程

    JavaWeb Servlet 基础教程 http原理, bs架构和cs架构, servlet原理, tomcat的部署

    jsp,servlet基础

    jsp 与servlet基础 1:jsp概述 2:jsp基础 3:jsp隐含对象 4:jsp中使用数据库 5:jsp与javabean ...

    Servlet 基础教程

    Servlet基础教程 http原理 request, response

    javaweb Servlet基础教程

    通过学习“Servlet基础教程”,你可以掌握创建动态网站的基本技能。无论你想构建用户管理系统还是其他类型的Web应用,Servlet都能提供强大的支持。这个课程将帮助你理解Servlet的工作原理,如请求和响应的处理,以及...

    实验2Servlet基础实验

    在"实验2Servlet基础实验"中,我们将学习如何创建、配置和运行Servlet,以理解其基本原理和应用场景。 1. **Servlet简介** Servlet是一个Java类,它遵循Servlet API规范,用于扩展服务器的功能。在Web开发中,...

    JSP Servlet基础知识测试题.pdf

    JSP Servlet基础知识测试题

    JSP和Servlet基础知识点

    ### Servlet基础 **1. Servlet概述:** Servlet是Java API的一部分,是一个Java类,用于扩展服务器的功能,处理HTTP请求。Servlet生命周期由容器(如Tomcat)管理。 **2. Servlet生命周期方法:** - **init()**:...

Global site tag (gtag.js) - Google Analytics