在寫乙個***更新當前頁面訪問瀏覽次數時,因為需要在伺服器停止時將瀏覽次數儲存在檔案中,方便下次呼叫。
為了儲存多個頁面的資料,使用了map集合。儲存的時候經過檢查檔案,可以確定沒有發生任何錯誤,但是在重啟tomcat時,始終會產生乙個eofexception異常,無法讀取到任何內容。
具體錯誤就是因為我先初始化了objectoutputstream物件,再初始化objectinputstream物件,但是它倆不是在用乙個方法中呼叫各自相關的方法,所以一直引發該錯誤。在該部落格乙個截圖是這樣說的:
修改後**如下:
private int count;
private mapmap = new hashmap<>();
private file file;
public countlistener()
public void requestinitialized(servletrequestevent sre)
count = map.get(pageuri);
long nowtime = system.currenttimemillis();
long beftime = nowtime;
if(session.getattribute(pageuri)!=null)
if((nowtime-beftime)==0||(nowtime-beftime)>=(1000*10))
session.setattribute(pageuri,nowtime);
map.put(pageuri, count);}}
public void contextinitialized(servletcontextevent sce)
ois.close();
} catch (classnotfoundexception e) catch (eofexception e) catch (ioexception e)
}public void contextdestroyed(servletcontextevent sce) catch (ioexception e)
}
以下到底產生了幾個物件?
string s new string a 到底產生了幾個物件?上面圖中堆指向常量池的三個箭頭,表示通過new產生乙個字串 hello world 時,會去常量池中查詢是否有 hello world 物件,如果沒有,則在常量池中建立乙個此字串物件,然後在堆中再建立乙個常量池中此 helloworld...
new 乙個物件時發生了什麼
var person function name var p new person boring 以上 在呼叫時,會變成如下 var p person name newobj.constructor.call newobj,name 3 return newobj 4 0 建立乙個新的物件,newo...
IO流的物件使用規律小結
四個明確 明確一 明確讀寫 要操作的資料是資料來源還是資料目的。源 inputstream reader 目的 outputstream writer 明確二 明確位元組字元 要操作的裝置上的資料是位元組還是文字 源 位元組 inputstream 文字 reader 目的 位元組 outputst...