servlets中的构造函数被认为是一种好的/坏的实践吗?它与init()方法相比如何?使用servlet-3和普通的javaEE (由javax.inject包提供)
发布于 2012-07-22 23:39:50
在servlet中使用构造函数没有错。切换到init()的原因是当您需要获取ServletConfig、ServletContext等时。这些对象在构造函数中可能还不可用。
同样,假设一些容器可能会用servlet做一些奇特的事情,比如动态子类化或代理。最后,构造函数中的副作用往往会使测试变得更加困难。
为了避免意外的行为,并确保您的servlet是100%可移植的,只需坚持使用init()即可。另外,如果您也使用destroy(),那么实现init()将使您的代码更加“对称”。
另请参阅
发布于 2012-11-20 19:36:08
是的,我们可以在servlet中使用构造函数,但这不是必需的,bcoz-
servlets由web容器初始化。servlets不像其他java类那样被初始化。构造函数用于初始化显式创建的对象,而servlet使用不同的方法'init()‘进行初始化。
Servlet只是一个接口(javax.servlet.Servlet),java中的接口没有任何构造函数和实现类的构造函数,不能在servlet接口中声明,这没有任何意义。容器将只使用init()方法来初始化servlet。
https://stackoverflow.com/questions/11601559
复制相似问题