Cookie获取用户的访问记录
生活随笔
收集整理的這篇文章主要介紹了
Cookie获取用户的访问记录
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用Cookie技術? 獲取用戶的訪問記錄
? 1.創建 虛擬數據
package com.oracleoaec.cookie;import java.util.HashMap;public class GoodMap {public static void main(String[] args) {GoodMap instance = GoodMap.getInstance();String good = instance.getMap().get("2");System.out.println("商品為:"+good);}private HashMap<String, String> map = new HashMap<>();private static GoodMap goodMap = null;private GoodMap(){map.put("1", "襪子");map.put("2", "鞋子");map.put("3", "褲子");map.put("4", "女朋友");map.put("5", "男朋友");map.put("6", "絲襪");}public static synchronized GoodMap getInstance(){if(goodMap==null){goodMap = new GoodMap();}return goodMap;}//獲得map容器的方法public HashMap<String, String> getMap() {return map;}}2.獲取數據
package com.oracleoaec.cookie;import java.io.IOException; import java.io.PrintWriter; import java.util.HashMap; import java.util.Map.Entry; import java.util.Set;import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;public class GoodMap2 extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("UTF-8");resp.setContentType("text/html;charset=UTF-8");PrintWriter writer = resp.getWriter();String str = req.getParameter("id");if (str != null) {Cookie cookie = new Cookie(str, str);resp.addCookie(cookie);}writer.write("<h1>所有的商品</h1>");GoodMap instance = GoodMap.getInstance();HashMap<String, String> map = instance.getMap();// 獲取所有的商品// 遍歷MAP容器Set<Entry<String, String>> entrySet = map.entrySet();for (Entry<String, String> entry : entrySet) {String id = entry.getKey();// 獲得商品idString name = entry.getValue();// 獲得商品名稱// 搭建界面writer.write("<a href='doS8?id=" + id + "'>" + name + "</a><br/>");}writer.write("<hr/>");// 分割一下// 1.獲取用戶請求攜帶的所有cookies對象數組// 2.如果數組中有數據// 3.將數據內容響應到界面Cookie[] cookies = req.getCookies();writer.write("<h1>最近瀏覽過<h1/></br>");for (int i = 0; cookies != null && i < cookies.length; i++) {String id = cookies[i].getValue();// 這邊獲取的是商品id// 根據商品id獲取商品名稱String name = map.get(id);writer.write(id+name+ "</br>");}} }?//獲取用戶上一次的訪問時間
package com.oracleoaec.cookie;import java.io.IOException; import java.io.PrintWriter; import java.sql.Date; import java.text.SimpleDateFormat;import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;public class ServletDemo3 extends HttpServlet {protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("UTF-8");resp.setContentType("text/html;charset=UTF-8");PrintWriter writer = resp.getWriter();//獲得字符輸出對象Cookie[] cookies = req.getCookies();//從請求域對象中獲取cookiesString value = null;for (int i = 0;cookies!=null&&i < cookies.length; i++) {String name = cookies[i].getName();//獲取cookie的nameif("time".equals(name)){value = cookies[i].getValue();//獲取cookie的值}}//區分第一次訪問和后續訪問if(value==null){//第一次訪問//寫界面writer.write("用戶為第一次訪問<a href='doS3'>點擊刷新</a>");}else{//后續訪問//從req對象中取出cookies 重復的操作需要避免//將獲取的字符串格式的時間 轉換成Date對象Date date = new Date(Long.parseLong(value));writer.write("用戶上一次訪問時間為:"+date.toLocaleString()+"<a href='doS3'>點擊刷新</a>"); // new SimpleDateFormat("yyyy-MM-dd").format(date)}//將當前時間添加到resp響應對象的cookie中Cookie c1 = new Cookie("time",System.currentTimeMillis()+"");resp.addCookie(c1);} }?
轉載于:https://www.cnblogs.com/john568300/p/6476822.html
總結
以上是生活随笔為你收集整理的Cookie获取用户的访问记录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: js检测数据类型的方法你都掌握了几个?
- 下一篇: POJ 2387 Til the Cow