如何创建ServletConfig和ServletContext对象

时间:2015-07-27 13:48:34

标签: servlets servletcontextlistener servletconfig

在Servlet中,我们有ServletConfig和ServletContext。通过API我发现两者都是接口。以下是我的疑惑

1.ServletConfig和ServletContext是接口,如果它们是接口,这些对象是如何创建的?

2.容器的类是否实现了这些接口并提供了实现?

3.我在哪里可以找到ServletConfig和ServletContext的实例化代码?

4.什么时候创建ServletConfig和ServletContext。

我还读到有SerlvetContextListener,它有方法上下文Created()和contextDestroyed()。并且在启动服务器时调用这些方法。那是我们如何知道ServletContext对象被创建的?只是阅读这本书并没有让我清楚地了解ServletConfig和ServletContext。想知道代码是如何创建的。有人请解释或提供链接,以便我可以通过并获得清晰的图片

1 个答案:

答案 0 :(得分:2)

  

1.ServletConfig和ServletContext是接口,如果它们是接口,这些对象是如何创建的?

实施由容器提供。请参阅tomcat中使用的ApplicationContext

  

2.容器的类是否实现了这些接口并提供了实现?

与#1相同

  

3.我在哪里可以找到ServletConfig和ServletContext的实例化代码?

在grep代码中搜索tomcat-core jar,您可以找到实现。我链接了上面的ServletContext实现。

  

4.什么时候创建ServletConfig和ServletContext。

ServletContext是一个应用程序级对象,ServletConfig是每个Servlet。两者都将在您的应用程序加载时创建。

  

另外我读到有SerlvetContextListener并且它有方法   context Created()和contextDestroyed()。这些方法被称为   服务器启动时。这就是我们如何才能知道这一点   是否创建了ServletContext对象?

创建示例应用并添加ServletContextListener。请参见示例here。您可以在contextInitialized和Destroyed方法中添加日志,以查看它们何时被调用。