同一個目標,同一個夢想

          One Target,One Dream
          posts - 25, comments - 11, trackbacks - 0, articles - 37

           * 在JavaWeb中使用HttpSession(以下簡稱session)對象來表示一個會話。 

          * Session的創建(代表會話周期的開始):第一次調用request.getSession()方法時,會創建一個session對象。

           * Session的銷毀(代表會話周期的結束):在某個請求周期內調用了Session.invalidate()方法,此請求周期結束后,session被銷毀;或者是session超時后自動銷毀。

           * 對于JSP,如果指定了<%@ page session="false"%>,則在JSP中無法直接訪問內置的session變量,同時也不會主動創建session,因為此時JSP未自動執行request.getSession()操作獲取session。

           * 在session對象剛創建的第一個請求周期內,調用session.isNew()方法將得到true。

          1.有效期設置

           * 可以在web.xml文件中配置session默認的超時時間(分鐘):      <session-config>          <session-timeout>10</session-timeout>      </session-config>      也可以調用session. setMaxInactiveInterval()方法設置session超時時間(分鐘)

          2.監控  

          * 通過SessionListenr可以監聽session的創建和銷毀,步驟:     

          1.寫一個類MySessionListener,實現javax.servlet.http.HttpSessionListener接口及其sessionCreated()、sessionDestroyed()方法     

           2.在web.xml中配置SessionListener:     

          <listener>         

          <listener-class>MySessionListener類全名</listener-class>     

          </listener>   

          * 當session 被創建和銷毀時,容器會分別調用SessionListener的sessionCreated()方法和sessionDestroyed()方法,這兩個方法中傳入了一個參數對象HttpSessionEvent,可以通過此對象的getSession()方法獲取session對象。

           應用示例:在線人數統計

          import java.util.HashSet;

          import javax.servlet.ServletContext;

          import javax.servlet.http.HttpSession;

          import javax.servlet.http.HttpSessionEvent;

          import javax.servlet.http.HttpSessionListener; 

          public class MySessionListener implements HttpSessionListener {       

           public void sessionCreated(HttpSessionEvent event) {             

           HttpSession session = event.getSession();             

          ServletContext application = session.getServletContext();                           

           // 在application范圍由一個HashSet集保存所有的session             

           HashSet sessions = (HashSet) application.getAttribute("sessions");             

          if (sessions == null) {                    

          sessions = new HashSet();                    

          application.setAttribute("sessions", sessions);             

          }                           

          // 新創建的session均添加到HashSet集中             

           sessions.add(session);             

          // 可以在別處從application范圍中取出sessions集合             

          // 然后使用sessions.size()獲取當前活動的session數,即為“在線人數”      

          }       

          public void sessionDestroyed(HttpSessionEvent event) {             

          HttpSession session = event.getSession();             

           ServletContext application = session.getServletContext();             

           HashSet sessions = (HashSet) application.getAttribute("sessions");                           

           // 銷毀的session均從HashSet集中移除             

          sessions.remove(session);      

          }

          }

          Feedback

          # re: jsp中Session的有效期設置、監控怎么實現?[未登錄]  回復  更多評論   

          2016-05-18 15:35 by 123
          swer

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 含山县| 盈江县| 庐江县| 盐源县| 普宁市| 久治县| 临西县| 贵港市| 铁岭市| 英德市| 宁化县| 紫阳县| 临朐县| 秦安县| 白玉县| 罗源县| 顺义区| 鹿泉市| 玛沁县| 洛隆县| 临潭县| 建宁县| 久治县| 丹巴县| 马公市| 龙川县| 宁远县| 渭南市| 岑巩县| 开化县| 乌兰县| 阿瓦提县| 托克逊县| 板桥市| 峡江县| 广宗县| 澎湖县| 隆昌县| 邢台县| 嵊泗县| 巴东县|