java中監聽器和session的一個練習
阿新 • • 發佈:2019-02-10
預設情況下第一次訪問伺服器,伺服器端就會產生一個session物件,再會話期內,這個物件一直存在。
但是可以通過修改一些配置來設定瀏覽器每次請求訪問的時候不產生session物件。
(有什麼不對的,大家可以指出來啊,自己對session的理解不是很到位。)
在做這個例子的時候,無論如何我都獲取不到EL表示式的值,想了半天終於知道了。
首先我在執行程式碼的時候,瀏覽器一直在執行著,所以session物件已經有了,當我訪問我專案的index.jsp頁面時,根本不會觸發myhttpSessionListener方法中的created函式,也就是根本不會將num的值放到上下文物件中,因此index。jsp頁面中無法獲取到num的值。
下邊來看原始碼
MyHttpSessionListener程式碼
@WebListener public class myHttpSessionListener implements HttpSessionListener{ private int num=0; @Override public void sessionCreated(HttpSessionEvent se) { num++; se.getSession().getServletContext().setAttribute("num", num); } @Override public void sessionDestroyed(HttpSessionEvent se) { num--; se.getSession().getServletContext().setAttribute("num", num); } } |
<body> 當前線上人數:${num} </body> |
知道自己錯誤的原因後,我只在心裡默默地罵了我自己三聲,你是笨蛋,你是笨蛋,你是笨蛋。
我待程式碼如初戀,程式碼虐我千百遍。