一、在Servlet/JSP中的幾種變量類型
在編寫Servlet/JSP程序時,對實例變量一定要小心使用。因為實例變量是非線程安全的。在Servlet/JSP中,變量可以歸為下面的幾類:
1. 類變量
request,response,session,config,application,以及JSP頁面內置的page, pageContext。其中除了application外,其它都是線程安全的。
2. 實例變量
實例變量是實例所有的,在堆中分配。在Servlet/JSP容器中,一般僅實例化一個Servlet/JSP實例,啟動多個該實例的線程來處理請求。而實例變量是該實例所有的線程所共享,所以,實例變量不是線程安全的。
3. 局部變量
局部變量在堆棧中分配,因為每一個線程有自己的執行堆棧,所以,局部變量是線程安全的。
在編寫Servlet/JSP程序時,對實例變量一定要小心使用。因為實例變量是非線程安全的。在Servlet/JSP中,變量可以歸為下面的幾類:
1. 類變量
request,response,session,config,application,以及JSP頁面內置的page, pageContext。其中除了application外,其它都是線程安全的。
2. 實例變量
實例變量是實例所有的,在堆中分配。在Servlet/JSP容器中,一般僅實例化一個Servlet/JSP實例,啟動多個該實例的線程來處理請求。而實例變量是該實例所有的線程所共享,所以,實例變量不是線程安全的。
3. 局部變量
局部變量在堆棧中分配,因為每一個線程有自己的執行堆棧,所以,局部變量是線程安全的。