曾梦垚

导航

Servlet

Servlet的生命周期

 

   Servlet的生命周期是由tomcat服务器来控制的。

  1 构造方法:

创建servlet对象的时候调用。默认情况下,第一访问servlet就会创建servlet对象只创建一次。说明servlet对象在tomcat中是单实例的。

 

 2初始化   init方法

  当创建完servlet对象的时候会调用init()方法,只调用一次。

 

3 调用服务 service 方法   其中就包含doGet  doPost等方法

  每次发送请求的时候调用。可以调用n次。

4 销毁    destory 方法

   销毁servlet对象的时候调用,停止服务器或者重新部署的web项目的时候销毁servlet就会调用destory方法

  

Servlet时序图

servlet自动加载

web.xml中加入

  <load-on-startup> 1</load-on-startup>

里面的数字越小加载级别越高

tomcat启动的时候,就去运行web.xml解析里面的内容,当发现有自动加载的数据时候,就会运行加载。

 

 <servlet>

 

    <servlet-name>sl</servlet-name>

 

    <servlet-class>com.bw.servlet.LoginServlet</servlet-class>

 

      <load-on-startup>3</load-on-startup>

 

  </servlet>

 ServletConfig 对象

   主要是加载servlet的初始化参数,web应用中可以存在多个ServletConfig对象

 

<servlet>

 

    <servlet-name>sl</servlet-name>

 

    <servlet-class>com.bw.servlet.LoginServlet</servlet-class>

 

     <init-param>

 

      <param-name>username</param-name>

 

      <param-value>godyang</param-value>

 

    </init-param>

 

    <init-param>

 

      <param-name>password</param-name>

 

      <param-value>123456</param-value>

 

    </init-param>

 

  </servlet>

ServletContext对象

 上下文对象,表示当前的web应用(项目)环境。一个web应用只有一个ServletContext对象

 

  上下文参数配置  它是全局的  所有的servlet都可以访问

 

<context-param>

 

<param-name>ecode</param-name>

 

<param-value>UTF-8</param-value>

 

</context-param>

 

// 获取上下文对象

ServletContext sc = this.getServletContext();

String contextParamValue = sc.getInitParameter("ecode");

System.out.println("contextParamValue=" + contextParamValue);

//项目路径

String path=sc.getContextPath();

System.out.println("path="+path);

//文件发布后(tomcat/webapps)的真实路径

String realPath=sc.getRealPath("counter.txt");

System.out.println("realPath="+realPath  );

//获取文件流

     InputStream  is=sc.getResourceAsStream("C:\\Tomcat\\webapps\\webThree\\WEB-INF\\classes\\counter.txt");

 

posted on 2016-12-21 20:55  曾梦垚  阅读(117)  评论(0编辑  收藏  举报