Servlet学习----servletconfig对象

73 篇文章 0 订阅
26 篇文章 0 订阅

Servlet的自动加载机制

          默认情况servlet对象是在第一次访问的时候创建的,若在这个servlet的构造方法或init方法执行比较多的逻辑,那么第一次访问servlet的用户体验就不好!

     <servlet>
          <servlet-name>TimeServlet</servlet-name>
          <servlet-class>TimeServlet</servlet-class>
          <!--这个配置可以让servlet在tomcat服务器启动的时候自动创建servlet对象-->
          <load-on-startup>1</load-on-startup>
     </servlet≥
     <servlet-mapping>
          <servlet-name>TimeServlet</servlet-name>
          <url-pattern>/servlet/TimeServlet</url-pattern>
     </servlet-mapping>

        注:load-on-startup中的整数值越大,创建的优先级就越低。

Servlet的init方法

           两个init方法作用:

  • init(Servletconfig):这个有参数的init方法作用就是Servlet的其中一个重要的生命周期方法。这个方法一定会被tomcat服务器调用。
  • init():这个无参数的init方法作用就是为了提供给开发者方便去覆盖,覆盖这个方法,可以在此方法中编写初始化的逻辑。这个方法才是真的给开发者做初始化逻辑的方法。

     总结:开发者应该覆盖无参的init方法来编写初始化逻辑,而不是去覆盖有参数的init方法。

Servletconfig对象详解          

          在Servlet 的配置文件中,可以用一个或多个<init-param>标签为servlet配置一些初始化参数。

          当servlet配置了初始化参数之后,web容器在创建servlet实例对象时,会自动将这些初始化参数封装到ServletConfig对象中,并在调用servlet的init方法时,将ServletConfig对象传递给Servlet。进而,程序员通过Servlet对象得到当前servlet的初始化参数信息。

          1.配置 Servlet 的初始化参数

<!-- 配置servlet 和 映射 servlet 且该节点必须在load-on-starup节点的前面 -->
    <servlet>
        <!-- Servlet 的注册名 -->
        <servlet-name>helloServlet</servlet-name>
        <!-- Servlet 的全类名 -->
        <servlet-class>com.jason.javaweb.helloServlet</servlet-class>


        <!-- 配置Servlet的初始化参数 -->
        <init-param>
            <!--参数名 -->
            <param-name>user</param-name>
            <!-- 参数值 -->
            <param-value>root</param-value>
        </init-param>

        <init-param>
            <param-name>password</param-name>
            <param-value>zhangzhen</param-value>
        </init-param>

        <!-- 可以指定Servlet 被创建的时机 -->
        <load-on-startup>1</load-on-startup>

    </servlet>

           2. 获取初始化参数:

  •               getInitParameter(String name): 获取指定参数名的初始化参数
  •            getInitParameterNames():获取参数组成的enumeration 对象
  •            getServletName():获取Servlet配置名 
@Override
    public void init(ServletConfig servletConfig) throws ServletException {
        System.out.println("init");
        
        //获取一个指定的初始化参数
        String user = servletConfig.getInitParameter("user");
        System.out.println(user);
        //获取初始换参数组成的enumeration
        Enumeration<String>  names = servletConfig.getInitParameterNames();    
        while(names.hasMoreElements()){
            String name = names.nextElement();
            String value = servletConfig.getInitParameter(name);
            System.out.println("name : " + name +"  value : "+value);
        }
    }

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值