Chinaunix首页 | 论坛 | 博客
  • 博客访问: 79192
  • 博文数量: 23
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 838
  • 用 户 组: 普通用户
  • 注册时间: 2013-04-09 22:55
文章分类

全部博文(23)

文章存档

2013年(23)

我的朋友

分类: Java

2013-04-11 21:31:48

    容器创建了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 {

    }
      //...Rest of Servlet
    }
    第二中方法是
    public class LoginServlet extends HttpServlet {
    public void init(ServletConfig config) throws ServletException {
       super.init(config);
       // ...Remainder of init() method
    }
      //...Rest of Servlet
    }

    9.servlet初始化正常结束,才能处理处理用户的请求,如果在初始化方法init()中出现错误,那么需要throw a ServletException或者父类的UnavailableException.这会告诉

    servlet容器初始化失败,不能处理任何请求.

    阅读(3024) | 评论(2) | 转发(0) |
    给主人留下些什么吧!~~

    drafei1232013-04-14 16:51:32

    先勇不要这样啊~

    0云儿飘飘02013-04-14 15:04:40

    百度到都是我们这一片作业,直接转载算了