JavaWeb學習 第7章 Session 會話編程

來源:互聯網
上載者:User

1. 什麼是 會話 Session?

由於 上一篇講到的 Cookie 的缺陷,就有了 Session,它是儲存在伺服器的記憶體中的,而不是使用者的電腦中

2. 典型執行個體: 網店購物車

3. Session 會話編程

HttpSession 介面定義了 Session 相應的方法

4. 會話的結束

5. 會話的底層實現方式:

① Cookie JSessoinID=...

② URL 重寫 :(防止有些使用者會關閉 Cookie)

6. 執行個體展示

--------------> 建立一個Servlet DemoSessionServlet .java

package webbook.chapter7;import java.io.IOException;import java.io.PrintWriter;import java.sql.Date;import java.util.Enumeration;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;public class DemoSessionServlet extends HttpServlet {private static final long serialVersionUID = 3144436730239445373L;public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {HttpSession session = request.getSession();Integer counter = (Integer) session.getAttribute("counter");if (counter == null) {counter = new Integer(1);} else {counter = new Integer(counter.intValue() + 1);}session.setAttribute("counter", counter);session.setMaxInactiveInterval(3600);response.setContentType("text/html;charset=UTF-8");PrintWriter out = response.getWriter();out.println("<html>");out.println("<head><title>session demo servlet</title></head>");out.println("<body>");out.println("<h1>使用session的示範</h1>");out.println("你已經訪問了" + counter + "次.<br><br>");if (session.isNew()) {out.println("這是一個建立的Session.<br><br>");} else {out.println("這不是一個建立的Session.<br><br>");}out.println("jsessionid: " + session.getId() + "<br><br>");out.println("LastAccessedTime: " + session.getLastAccessedTime() + "<br>");out.println("格式轉換以後的LastAccessedTime: " + new Date(session.getLastAccessedTime()) + "<br><br>");out.println("CreationTime: " + session.getCreationTime() + "<br>");out.println("格式轉換以後的CreationTime: " + new Date(session.getCreationTime()) + "<br><br>");out.println("MaxInactiveInterval: " + session.getMaxInactiveInterval() + "秒<br>");out.println("<br>使用Session對象的getAttributeNames<br>");Enumeration enumer = session.getAttributeNames();String name = null;while (enumer.hasMoreElements()) {name = (String) enumer.nextElement();out.println("Session name:" + name + "<br>");out.println("Session value:" + session.getAttribute(name) + "<br>");}// session.removeAttribute("counter");// session.invalidate();out.println("</body>");out.println("</html>");out.flush();out.close();}}

  

在瀏覽器中輸入Servlet對應的路徑,結果:

第一次進入顯示結果:

重新整理後顯示結果:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.