servlet 中的构造函数被认为是一种好/坏的做法?它与init()
方法相比如何?使用 servlet-3 和 vanilla javaEE(javax.inject 包提供的 CDI)
问问题
1493 次
2 回答
4
在 servlet 中使用构造函数并没有错。切换到的原因init()
是当您需要获取ServletConfig
,ServletContext
等时。这些对象在构造函数中可能(还)不可用。
另外假设一些容器可能会用 servlet 做一些花哨的事情,比如动态子类化或代理。最后,构造函数中的副作用往往会使测试更加困难。
为了避免意外行为并确保您的 servlet 是 100% 可移植的,只需坚持使用init()
. 此外,如果您也使用destroy()
,实现init()
将使您的代码更加“对称”。
也可以看看
于 2012-07-22T15:39:50.173 回答
0
是的,我们可以在 servlet 中使用构造函数,但这不是必需的 bcoz-
servlet 由 Web 容器初始化。servlet 不像其他 java 类那样被初始化。构造函数用于初始化显式创建的对象,而 servlet 使用不同的方法“init()”进行初始化。
Servlet只是一个接口(javax.servlet.Servlet),java中的接口没有任何构造函数,实现类的构造函数不能在servlet接口中声明,它没有任何意义。Container 只会使用 init() 方法来初始化 servlet。
于 2012-11-20T11:36:07.707 回答