servlets使用init()来初始化servlet状态并使用destroy来清理。是否有一个特殊的类名,我们需要把init()和destroy()? servlet如何知道在哪里找到这些方法?
asp.net有一个global.asax来处理asp.net中类似的东西,servlets有一个特殊的类来做同样的事情吗?
谢谢
答案 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只在扩展Servlet
或HttpServlet
的类中查找这些方法。
答案 4 :(得分:0)
Servlet是托管对象。这意味着它们在管理其生命周期的容器内执行(实例化servlet,在适当的时候调用它们的相关方法,然后释放它们)。容器(Tomcat,Glassfish,...)知道何时在适当的时候调用这些方法,因为它是以这种方式实现的,没有什么特别之处。
如果容器有错误,它甚至可以在初始时调用destroy(),在销毁时调用init()。不过,这个bug很快就会被修复。