日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > 互聯網 > HttpSession的深入分析與研究

HttpSession的深入分析與研究

來源:程序員人生   發布時間:2014-09-06 11:36:25 閱讀次數:2959次

HTTP是無狀態協議,這意味著每次客戶端檢索網頁時,都要單獨打開一個服務器連接,因此服務器不會記錄下先前客戶端請求的任何信息。

有三種方法來維持客戶端與服務器的會話:

1.網絡服務器可以指定一個唯一的session ID作為cookie來代表每個客戶端,用來識別這個客戶端接下來的請求。

這可能不是一種有效的方式,因為很多時候瀏覽器并不一定支持cookie,所以我們不建議使用這種方法來維持會話。

2.重寫URL

舉例來說,http://baidu.com;sessionid=12345, session標識符為sessionid=12345,服務器可以用這個數據來識別客戶端。

相比而言,重寫URL是更好的方式來,就算瀏覽器不支持cookies也能工作,但缺點是您必須為每個URL動態指定session ID,就算這是個簡單的HTML頁面。

3.除了以上幾種方法外,JSP利用servlet提供的HttpSession接口來識別一個用戶,存儲這個用戶的所有訪問信息。

JSP引擎將隱含的session對象暴露給開發者。由于提供了session對象,開發者就可以方便地存儲或檢索數據。

下表列出了session對象的一些重要方法:
1 public Object getAttribute(String name)
返回session對象中與指定名稱綁定的對象,如果不存在則返回null
2 public Enumeration getAttributeNames()
返回session對象中所有的對象名稱
3 public long getCreationTime()
返回session對象被創建的時間, 以毫秒為單位,從1970年1月1號凌晨開始算起
4 public String getId()
返回session對象的ID
5 public long getLastAccessedTime()
返回客戶端最后訪問的時間,以毫秒為單位,從1970年1月1號凌晨開始算起
6 public int getMaxInactiveInterval()
返回最大時間間隔,以秒為單位,servlet 容器將會在這段時間內保持會話打開
7 public void invalidate()
 將session無效化,解綁任何與該session綁定的對象
8 public boolean isNew()
返回是否為一個新的客戶端,或者客戶端是否拒絕加入session
9 public void removeAttribute(String name)
移除session中指定名稱的對象
10 public void setAttribute(String name, Object value) 
使用指定的名稱和值來產生一個對象并綁定到session中
11 public void setMaxInactiveInterval(int interval)
用來指定時間,以秒為單位,servlet容器將會在這段時間內保持會話有效
那在實踐開發中是如何使用的呢?

下面我們就通過一個簡單的例子查看session的使用

web.xml

<servlet> <servlet-name>Session</servlet-name> <servlet-class>com.qzp.servlet.sessionServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Session</servlet-name> <url-pattern>/session</url-pattern> </servlet-mapping>

sessionTest.jsp

<body> <form action="session" method="post"> <input type="submit" value="查看session"> </form> </body>

sessionServlet

public class sessionServlet extends HttpServlet { /** * */ private static final long serialVersionUID = 1L; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stub this.doGet(req, resp); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { HttpSession session = req.getSession(); // 獲取session創建時間 // 通過simpleDateFormat轉化日期格式 Date createTime = new Date(session.getCreationTime()); SimpleDateFormat st1=new SimpleDateFormat ("yyyy年MM月dd日 HH時mm分ss秒 E"); String time1=st1.format(createTime); // 獲取最后訪問頁面的時間 Date lastAccessTime = new Date(session.getLastAccessedTime()); SimpleDateFormat st2=new SimpleDateFormat ("yyyy年MM月dd日 HH時mm分ss秒 E"); String time2=st2.format(lastAccessTime); //訪問用戶的唯一標識id 的key-value String userIDValue = "0011"; //訪問次數的 key-value //注意session的構造方法public void setAttribute(String name, Object value) //此構造方法之中 key是一個String類型的變量;value是一個object類型變量 int visitCountValue; visitCountValue = (Integer)session.getAttribute("visitCount"); //判斷是否為新用戶 if (session.isNew()){ session.setAttribute("idKey", userIDValue); session.setAttribute("visitCount", visitCountValue); } visitCountValue = visitCountValue + 1; session.setAttribute("visitCount", visitCountValue); session.setAttribute("idKey", userIDValue); session.setAttribute("time1", time1); session.setAttribute("time2", time2); req.getRequestDispatcher("sessionResult.jsp").forward(req, resp); } }
sessionResult.jsp,前臺通過EL表達式取到session范圍內的值

<body> <center> <p>Session Tracking</p> </center> <table border="1" align="center"> <tr bgcolor="#949494"> <th>Session info</th> <th>Value</th> </tr> <tr> <td>id</td> <td>${sessionScope.idKey}</td> </tr> <tr> <td>Creation Time</td> <td>${sessionScope.time1}</td> </tr> <tr> <td>Time of Last Access</td> <td>${sessionScope.time2}</td> </tr> <tr> <td>Number of visits</td> <td> ${sessionScope.visitCount} </td> </tr> </table> </body>
執行結果如下:每一次刷新,頁面的visitCount都會加1


生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 美女久久 | 麻豆国产尤物av尤物在线观看 | 一级毛片在线看 | 国产成人精品一区二区三区 | 99国产精品久久 | 亚洲成年人av | 黄色免费网 | 中文 日韩 欧美 | 国产国语av | 国产成人久久精品 | 91视频你懂的 | 亚洲午夜精品在线 | 美女又爽又黄视频毛茸茸 | 国产一二三在线观看 | 日韩影视精品 | 欧美乱性| 日本精品国产 | 久久国产视频播放 | 日本久久久久久久 | 成人在线视频一区二区 | 在线1区 | 久久免费中文视频 | 成人影院网站ww555久久精品 | 波多野结衣中文字幕久久 | 国产精品一区二区三区免费观看 | 性一区 | 91看片网| 日韩一区二区高清 | 91精品国产一区二区 | 国产精品电影一区二区三区 | 狠狠久 | 综合久| 国产高清一区二区 | 午夜精品导航 | 久久久久久中文字幕 | 欧美乱大交做爰xxxⅹ性3 | 爱情岛亚洲首页论坛 | 九九九久久国产免费 | 69av在线视频 | 干色网| 日韩视频区 |