您的位置:首頁技術文章
文章詳情頁

java - servlet 聲明一個私有靜態類對象成員,那么在doPost等方法中使用該類對象的方法是否線程安全?

瀏覽:105日期:2024-01-24 17:54:30

問題描述

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:

每一個 Servlet 對象在 Web 容器中只有一個實例(單例模式),所以如果多個 HTTP 請求請求的是同一個 Servlet,那么多個 HTTP 請求對應的線程將并發調用 Servlet 的 doPost 方法 —— 簡單起見,可以將你的 IUtils 使用 ThreadLocal 封裝。

標簽: java
国产综合久久一区二区三区