JavaWeb之Cookie詳解
阿新 • • 發佈:2019-01-24
1 package gac.xdp.cookie;
2
3 import java.io.IOException;
4 import java.io.PrintWriter;
5 import java.util.Date;
6 import javax.servlet.ServletException;
7 import javax.servlet.http.Cookie;
8 import javax.servlet.http.HttpServlet;
9 import javax.servlet.http.HttpServletRequest;
10 import javax.servlet.http.HttpServletResponse;
11
12 /**
13 * @author gacl
14 * cookie例項:獲取使用者上一次訪問的時間
15 */
16 public class CookieDemo01 extends HttpServlet {
17
18 public void doGet(HttpServletRequest request, HttpServletResponse response)
19 throws ServletException, IOException {
20 //設定伺服器端以UTF-8編碼進行輸出
21 response.setCharacterEncoding("UTF-8");
22 //設定瀏覽器以UTF-8編碼進行接收,解決中文亂碼問題
23 response.setContentType("text/html;charset=UTF-8");
24 PrintWriter out = response.getWriter();
25 //獲取瀏覽器訪問訪問伺服器時傳遞過來的cookie陣列
26 Cookie[] cookies = request.getCookies();
27 //如果使用者是第一次訪問,那麼得到的cookies將是null
28 if (cookies!=null ) {
29 out.write("您上次訪問的時間是:");
30 for (int i = 0; i < cookies.length; i++) {
31 Cookie cookie = cookies[i];
32 if (cookie.getName().equals("lastAccessTime")) {
33 Long lastAccessTime =Long.parseLong(cookie.getValue());
34 Date date = new Date(lastAccessTime);
35 out.write(date.toLocaleString());
36 }
37 }
38 }else {
39 out.write("這是您第一次訪問本站!");
40 }
41
42 //使用者訪問過之後重新設定使用者的訪問時間,儲存到cookie中,然後傳送到客戶端瀏覽器
43 Cookie cookie = new Cookie("lastAccessTime", System.currentTimeMillis()+"");//建立一個cookie,cookie的名字是lastAccessTime
44 //將cookie物件新增到response物件中,這樣伺服器在輸出response物件中的內容時就會把cookie也輸出到客戶端瀏覽器
45 response.addCookie(cookie);
46 }
47
48 public void doPost(HttpServletRequest request, HttpServletResponse response)
49 throws ServletException, IOException {
50 doGet(request, response);
51 }
52
53 }