这个问题几天前在内部讨论中突然出现,我们似乎没有找到任何合适的答案。有人能指出我正确的方向吗?
问题:
1)为什么HttpServlet
中有implements serializable
?我似乎没有找到任何合理的理由。
2)在试图弄清楚这一点时,我查看了api doc并发现了一些有趣的事情
public abstract class HttpServlet extends GenericServlet
implements Serializable
现在,感兴趣的是GenericServlet
也扩展了Serializable
。因此父类和子类都实现了可序列化。这不是反模式吗?
答案 0 :(得分:7)
1)为什么java中的httpservlet实现了serializable?我似乎没有 找到相同的逻辑原因。
支持虚拟机之间的群集和序列化,钝化等。
答案 1 :(得分:2)
另一个原因是Tomcat等Web容器在关闭时会调用一些钩子。这些钩子保留了hdd上的application / servlet的状态,所以当重新启动web容器时,应用程序不会丢失它的状态。