zoukankan      html  css  js  c++  java
  • Cookie的使用(判断登录时间)

    案例:记住上一次访问时间
    		1. 需求:
    				1. 访问一个Servlet,如果是第一次访问,则提示:您好,欢迎您首次访问。
    				2. 如果不是第一次访问,则提示:欢迎回来,您上次访问时间为:显示时间字符串
    
    		2. 分析:
    				1. 可以采用Cookie来完成
    				2. 在服务器中的Servlet判断是否有一个名为lastTime的cookie
    					1. 有:不是第一次访问
    						1. 响应数据:欢迎回来,您上次访问时间为:2018年6月10日11:50:20
    						2. 写回Cookie:lastTime=2018年6月10日11:50:01
    					2. 没有:是第一次访问
    						1. 响应数据:您好,欢迎您首次访问
    						2. 写回Cookie:lastTime=2018年6月10日11:50:01
    
    package com.itcsl.cookie;
    
    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;
    import javax.xml.crypto.Data;
    import java.io.IOException;
    import java.net.URLDecoder;
    import java.net.URLEncoder;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    
    
    @WebServlet("/cookieTest")
    public class cookieTest extends HttpServlet {
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		response.setContentType("text/html;charset=utf-8");
    		//1.获取所有的coookie
    		Cookie[] cookies = request.getCookies();
    		boolean flag=false;
    		//2.遍历所有的cookie
    		//先判断不为空,长度大于0
    		if (cookies!=null&&cookies.length>0){
    			for (Cookie c:cookies){
    				String name = c.getName();
    				//4.判断,名称是否为lastTime
    				if ("lastTime".equals(name)){
    					//有该cookie,不是第一次访问
    					flag=true;
    					//设置cooki的value
    					// 获取当前时间的字符串,重新设置cookie的值重新发送
    					Date date = new Date();
    					SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
    					String str_date = dateFormat.format(date);
    					System.out.println("编码前的数据:"+str_date);
    
    					//URL编码
    					str_date=URLEncoder.encode(str_date,"utf-8");
    					c.setValue(str_date);
    
    					//设置cookie的存活时间
    					c.setMaxAge(60*60*24*30);//一个月
    
    					//响应数据
    					//获取cookie的时间
    					String value = c.getValue();
    
    					//URL解码
    					System.out.println("编码的的数据:"+str_date);
    					value= URLDecoder.decode(value,"utf-8");
    					System.out.println("解码后的数据:"+value);
    
    					response.getWriter().write("欢迎回来,您上次访问时间为:"+value);
    					break;
    				}
    			}
    		}
    
    		if (cookies==null||cookies.length==0||flag==false){
    			//没有,第一次访问
    
    			//设置cooki的value
    			// 获取当前时间的字符串,重新设置cookie的值重新发送
    			Date date = new Date();
    			SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
    			String str_date = dateFormat.format(date);
    			//URL编码
    			str_date=URLEncoder.encode(str_date,"utf-8");
    			Cookie cookie = new Cookie("lastTime",str_date);
    
    			response.addCookie(cookie);//发送cookie
    
    			//设置cookie的存活时间
    			cookie.setMaxAge(60*60*24*30);//一个月
    			response.getWriter().write("您好,欢迎您首次访问");
    
    		}
    
    	}
    
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		this.doPost(request,response);
    	}
    }
    
    
    每个人都是在努力的路上,别因为别人的误解而放弃,,术业有专攻,如是而已。
  • 相关阅读:
    caffe:使用C++来提取任意一张图片的特征(从内存读取数据)
    python:控制鼠标和键盘
    .dll 文件编写和使用
    python:打包成exe程序
    python:小乌龟turtle
    python:input()和raw_input()
    C++:哈希
    C++:线程(std::thread)
    GitHub:Git的使用
    链表
  • 原文地址:https://www.cnblogs.com/16699qq/p/13554926.html
Copyright © 2011-2022 走看看