찾다

 >  Q&A  >  본문

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

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不要被反复创建。

大家讲道理大家讲道理2807일 전665

모든 응답(1)나는 대답할 것이다

  • 黄舟

    黄舟2017-04-18 10:52:27

    Servlet 개체는 웹 컨테이너에 단 하나의 인스턴스(싱글톤 모드)만 있으므로 여러 HTTP 요청이 동일한 Servlet을 요청하면 여러 HTTP 요청에 해당하는 스레드가 Servlet의 인스턴스를 동시에 호출합니다. doPost 방법 - 단순화를 위해 IUtilsThreadLocal로 래핑할 수 있습니다.

    회신하다
    0
  • 취소회신하다