• 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 {
    	@Override
    	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    		doPost(req, resp);
    	}
    
    	@Override
    	protected 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();// 获得商品id
    			String 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);
    	}
    	@Override
    	protected 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();//从请求域对象中获取cookies
    		String value = null;
    		for (int i = 0;cookies!=null&&i < cookies.length; i++) {
    			String name = cookies[i].getName();//获取cookie的name
    			if("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);
    	}
    }
    
  • 相关阅读:
    {转}:Qualcomm整合SRS音频技术于其最新参考设计架构SRS
    语音库
    {转}:Digium和Dialogic在最近发布的产品中强调高清语音
    ICASSP2010Nokia研究中心对各种语音编码器进行主观测评的结果:
    MPEG 工作组会议进程
    加拿大在音频压缩算法和处理技术上有相当的研究和应用
    POLAQ :FAQ(注意,是ITU标准,但并不开源)
    语音编解码技术公司介绍(一):Digital Voice Systems, Inc. (DVSI)
    RALCWI(Robust Advanced Low Complexity Waveform Interpolation):
    G.723.1编解码器工程
  • 原文地址:https://www.cnblogs.com/john568300/p/6476822.html
Copyright © 2020-2023  润新知