20160329javaweb之JSP -cookie入門

破玉發表於2016-03-29
一、什麼是會話?
•會話可簡單理解為:使用者開一個瀏覽器,點選多個超連結,訪問伺服器多個web資源,然後關閉瀏覽器,整個過程稱之為一個會話。
會話過程中要解決的一些問題?
•每個使用者在使用瀏覽器與伺服器進行會話的過程中,不可避免各自會產生一些資料,程式要想辦法為每個使用者儲存這些資料。
•例如:使用者點選超連結通過一個servlet購買了一個商品,程式應該想辦法儲存使用者購買的商品,以便於使用者點結帳servlet時,結帳servlet可以得到使用者購買的商品為使用者結帳。
二、儲存會話資料的兩種技術
Cookie
Cookie是客戶端技術,程式把每個使用者的資料以cookie的形式寫給使用者各自的瀏覽器。當使用者使用瀏覽器再去訪問伺服器中的web資源時,就會帶著各自的資料去。這樣,web資源處理的就是使用者各自的資料了。
Session
Session是伺服器端技術,利用這個技術,伺服器在執行時可以為每一個使用者的瀏覽器建立一個其獨享的session物件,由於session為使用者瀏覽器獨享,所以使用者在訪問伺服器的web資源時,可以把各自的資料放在各自的session中,當使用者再去訪問伺服器中的其它web資源時,其它web資源再從使用者各自的session中取出資料為使用者服務。
 
cookie 儲存上次訪問時間程式碼:
package com.dzq.cookie;

import java.io.IOException;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


@WebServlet("/CookieDemo1")
public class CookieDemo1 extends HttpServlet {

	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//response.setHeader("Set-Cookie", "name=bingxiang");
		response.setContentType("text/html;charset=utf-8");
		Cookie cs[]=request.getCookies();
		Cookie findc=null;
		if(cs!=null){
		for(Cookie c:cs){
			if("lasttime".equals(c.getName())){
				findc=c;
			}
		}
		}
		if(findc==null){
			response.getWriter().write("No-cookie");
		}else{
			Long lasttime=Long.parseLong(findc.getValue());
			response.getWriter().write("Yes-cookie"+new Date(lasttime).toLocaleString());
			
		}
		Date date=new Date();
		Cookie c=new Cookie("lasttime",date.getTime()+"");
		response.addCookie(c);
	}

	
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doGet(request, response);
	}

}

  三、cookie細節

 
 
 

相關文章