zoukankan      html  css  js  c++  java
  • 两个init方法的区别

    容器创建了Servlet实例后,它将调用实例的init(ServletConfig)方法初始化Servlet.该方法的参数ServletConfig对象包含了在WEB应用程序的部署描述文件中指定的初始化参数。在init(ServletConfig)调用完后,容器将调用init() 方法,之后Servlet就被初始化了。
     
    两者不同定义:
    void init(ServletConfig config)  throws ServletException 
    public void init() throws ServletException
     
    原理如下:
      1、如果用户不需要设置一些初始化操作,那么init()方法的实现可有可无,因为可以从父类GenericServlet中继承得到。
      2、如果用户需要servlet通过从web.xml中读取initialization parameters或者configuration data,那么就需要显式实现init()方法。
      3、GenericServlet 提供两个overloaded形式的方法如下:
        public void init() throws ServletException
        public void init(ServletConfig) throws ServletException
      4、Servlet interface只定义一个init(ServletConfig)方法,而且servlet加载时必须被调用,但只在第一次加载被调用一次。
      5、GenericServlet实现了这个init(ServletConfig)方法,这个方法先保存ServletConfig reference,然后调用init()方法。
      6、如果用户servlet实现init()方法并在其中填充自己需要初始化的信息,这个init()会被GenericServlet中的init(ServletConfig)方法调用,因为ServletConfig                 reference已经被保存,所以你可以访问web.xml中的。
      7、如果用户servlet实现init(ServletConfig),那么就覆盖了GenericServlet(父类)init(ServletConfig)方法,因此,GenericServlet会调用子类的方法,而不会保               存ServletConfig reference,必须执行super.init(config)才能保存ServletConfig reference访问web.xml中的。
      8、所以有两种方法初始化:
      第一种
      public class LoginServlet extends HttpServlet 
      {
          public void init() throws ServletException 
          {
        }
      }
      第二中
      public class LoginServlet extends HttpServlet 
      {
          public void init(ServletConfig config) throws ServletException 
          {
              super.init(config)
          }
      }
      9、servlet初始化正常结束,才能处理处理用户的请求,如果在初始化方法init()中出现错误,那么需要throw a ServletException或者父类的UnavailableException,               这会告诉servlet容器初始化失败,不能处理任何请求。
  • 相关阅读:
    SQL的case when then else end语句的用法
    PR轨道工具
    Power Bi追加查询
    如何在电商平台查看历史价格
    MYSQL执行SQL出现错误:Error Code:1054.Unknown column "字段名" in 'order clause'如何解决
    Python 的基础数据类型
    整数回文转换
    N-城堡问题
    Find The Multiple
    Ecust DIV3 k进制 【暴力不断优化】
  • 原文地址:https://www.cnblogs.com/yang82/p/6738922.html
Copyright © 2011-2022 走看看