zoukankan      html  css  js  c++  java
  • 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");

  • 相关阅读:
    solidworks二次开发学习(3)move all of the bodies in a part document。
    solidworks二次开发学习(2)如何选中一个草图并遍历草图中的所有直线(非草图编辑状态)
    solidworks二次开发学习(1)如何选中一个草图并遍历草图中的所有直线
    EF 通过时间戳实现自带 乐观锁
    excel vba 的读取列,写入列,循环和if 的一些操作
    关于某些数据究竟是删除了再添加好还是直接修改比较好
    vs2017编译installer项目提示缺少visualstudio2010shell(Integrated)-CHN
    监控麦克风是否有声音输入
    获取出口ip or api获取请求者ip
    Http请求头安全策略
  • 原文地址:https://www.cnblogs.com/future-zmy/p/6209068.html
Copyright © 2011-2022 走看看