为了账号安全,请及时绑定邮箱和手机立即绑定

servlet 声明一个私有静态类对象成员,那么在doPost等方法中使用该类对象的方法是否线程安全?

servlet 声明一个私有静态类对象成员,那么在doPost等方法中使用该类对象的方法是否线程安全?

守着星空守着你 2019-02-20 06:50:06
public class MyServlet extends HttpServlet { private static IUtils utils= null; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { utils.do(); } } 代码结构如上,do不是静态方法,且方法内使用的都是局部变量,做的事情就是连接数据库做查询,然后返回查询结果。1.在doPost调用这个do方法是否安全?2.是否有必要声明成静态的,我希望这个utils不要被反复创建。
查看完整描述

1 回答

?
DIEA

TA贡献1820条经验 获得超2个赞

每一个 Servlet 对象在 Web 容器中只有一个实例(单例模式),所以如果多个 HTTP 请求请求的是同一个 Servlet,那么多个 HTTP 请求对应的线程将并发调用 ServletdoPost 方法 —— 简单起见,可以将你的 IUtils 使用 ThreadLocal 封装。

查看完整回答
反对 回复 2019-03-01
  • 1 回答
  • 0 关注
  • 398 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信