我有兩個JSP文件,每個文件都由不同的PC訪問。瞭解作爲實例的應用程序範圍中的屬性
在第一個,我創建Integer
類型的對象:
Integer var = 0;
application.setAttribute("name_var", var);
在第二個,我發現了屬性創建之前:
var = (Integer) application.getAttribute("name_var");
此時一切安好。在第二個JSP中,我在另一臺PC上有自己的價值。
由於Java是按值傳遞的,其值是引用(Is Java "pass-by-reference" or "pass-by-value"?),所以我猜我在兩個JSP文件(由不同的PC訪問)中都有相同的實例。
所以,現在,當我修改我的var值,並且它不會出現在另一側修改,我不明白爲什麼。
var++;
Output (in the JSP where the attribute was set): 0 (still)
任何人都可以解釋我發生了什麼?每次修改其值時,我是否需要使用setAttribute
更新對象?
預先感謝您
感謝您的解釋,並且爲AtomicInteger類。這將是非常有用的=) – 2015-03-13 18:18:06