首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Servlets是否使用构造函数?

Servlets是否使用构造函数?
EN

Stack Overflow用户
提问于 2012-07-22 23:32:07
回答 2查看 1.5K关注 0票数 2

servlets中的构造函数被认为是一种好的/坏的实践吗?它与init()方法相比如何?使用servlet-3和普通的javaEE (由javax.inject包提供)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-22 23:39:50

在servlet中使用构造函数没有错。切换到init()的原因是当您需要获取ServletConfigServletContext等时。这些对象在构造函数中可能还不可用。

同样,假设一些容器可能会用servlet做一些奇特的事情,比如动态子类化或代理。最后,构造函数中的副作用往往会使测试变得更加困难。

为了避免意外的行为,并确保您的servlet是100%可移植的,只需坚持使用init()即可。另外,如果您也使用destroy(),那么实现init()将使您的代码更加“对称”。

另请参阅

票数 4
EN

Stack Overflow用户

发布于 2012-11-20 19:36:08

是的,我们可以在servlet中使用构造函数,但这不是必需的,bcoz-

servlets由web容器初始化。servlets不像其他java类那样被初始化。构造函数用于初始化显式创建的对象,而servlet使用不同的方法'init()‘进行初始化。

Servlet只是一个接口(javax.servlet.Servlet),java中的接口没有任何构造函数和实现类的构造函数,不能在servlet接口中声明,这没有任何意义。容器将只使用init()方法来初始化servlet。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11601559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档