使用会话作为实例变量
我的 Servlet 的许多方法都使用 HTTPSession。将 HTTPSession 变量声明为实例变量是线程安全的吗?
Many methods of my Servlet use HTTPSession. It is thread-safety to declare HTTPSession variable as instance variable?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
默认情况下,Servlet 不是线程安全的。此外,servlet 实例将为许多客户端调用。 将 session 作为实例变量是绝对错误的。
参考:
Servlet 是线程安全的
编写线程安全的 Servlet
By defaut Servlets are not thread safe. And moreover, a servlets instance will invoked for many clients. It is absolutely wrong to have session as instance variable.
Reference:
Is a Servlet thread-safe
Write thread safe servlets
不,这不安全。应用程序启动时会创建 servlet。 Servlet 只有一个实例(这意味着多个请求/客户端使用同一个 Servlet),这就是为什么您应该避免使用任何实例变量。
No, it is not safe. a servlet is created when the application starts. The Servlet has only one instance (which means multiple requests/clients use the same servlet), which is why you should avoid having any instance variables.