java servlets init和destroy

时间:2011-05-16 18:17:52

标签: java servlets

servlets使用init()来初始化servlet状态并使用destroy来清理。是否有一个特殊的类名,我们需要把init()和destroy()? servlet如何知道在哪里找到这些方法?

asp.net有一个global.asax来处理asp.net中类似的东西,servlets有一个特殊的类来做同样的事情吗?

谢谢

5 个答案:

答案 0 :(得分:3)

Servlet最终将成为javax.servlet.Servlet类的子类,它定义了这些方法。

答案 1 :(得分:1)

它应该与您的Servlet类在同一个类中。

所有servlet都从Servlet类基础继承此方法。除非你想做一些额外的处理,否则继承的方法应该没问题,你不需要在每个servlet中覆盖这个方法。

答案 2 :(得分:1)

Servlet部署在Container(Web服务器/应用程序服务器)中,该容器将负责初始化或销毁servlet,我们没有预定义的类来初始化和销毁​​servlet,如果我们使用特定的类意味着我们取决于那个不推荐的课程(Tightly Coupling)。 现在我们使用GenericServlet和HttpServlet类来实现那些方法。引用J2EE API并在其中找到这些类和方法。

答案 3 :(得分:0)

运行Servlet的JVM只在扩展ServletHttpServlet的类中查找这些方法。

答案 4 :(得分:0)

Servlet是托管对象。这意味着它们在管理其生命周期的容器内执行(实例化servlet,在适当的时候调用它们的相关方法,然后释放它们)。容器(Tomcat,Glassfish,...)知道何时在适当的时候调用这些方法,因为它是以这种方式实现的,没有什么特别之处。

如果容器有错误,它甚至可以在初始时调用destroy(),在销毁时调用init()。不过,这个bug很快就会被修复。