案例:记住上一次访问时间

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);

}

}

java判断cookie是否过期_Cookie的使用(判断登录时间)相关推荐

  1. jwt判断token是否过期_4spring-security5整合jwt做登录、权限验证,全网最全!!!可用...

    github源码: https://github.com/gyb123456/spring-security5-jwt,最烦那些写文档只截图一半还不给源码的人,要不你就截全图,要不就给源码! 前言: ...

  2. java cookie过期_Java中Servlet Cookie设置过期时间(expires,max-age)

    Java中Servlet Cookie设置过期时间(expires,max-age) expires或者max-age指定了coolie的生存期,默认情况下coolie是暂时存在的,他们存储的值只在浏 ...

  3. java 通过cookie判断是否登陆

    protected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOExc ...

  4. 基础的java增删改查,Java基础系列(基础):Java使用Cookie增删改查操作!

    什么是Cookie? Cookie是由W3C组织提出,最早由NetScape社区发展的一种机制. Cookie是存储于访问者的计算机中的变量.每当同一台计算机通过浏览器请求某个页面时,就会发送这个co ...

  5. 一个判断session是否过期的小技巧

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. Session一直是我们做web项目经常使用的,以前没太注意,这次又细致的看了下! 1.sessio ...

  6. java之Cookie详解

    Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是 ...

  7. java 中cookie是什么_什么是cookie?

    为什么要用Cookie 浏览器与WEB服务器之间是使用HTTP协议进行通讯的,而HTTP协议本身是无状态的.什么是无状态呢,即服务器无法判断浏览器身份,即无论浏览器是否已经访问过,服务器都会当成第一次 ...

  8. 利用cookie和jsp写一个简单的登录判断的网页,并获取上次的登录的时间。

    要求:因为只是简单制作,没必要连数据库,直接用确定值去判断.然后就是第一次登录的时候需要获取到登录的时间,然后在下次登录的时候将上次获取到的时间输出. 思路:首先第一个,第一次登录的jsp(姑且当做注 ...

  9. cookie设置过期时间

    封装初衷-不想每次设置cookie的过期时间都写一遍,比较烦! 目前这个包放在npm库中,下载npm install happycookie class happyCookie {constructo ...

最新文章

  1. RK3399如何选择系统呢?
  2. Javascript数组常见的方法
  3. vb字符串在内存中的分布?
  4. 为什么要学习 Markdown?究竟有什么用?怎么用?
  5. 硬件?软件?视频会议系统中两者有何区别?
  6. 【推荐实践】信息流推荐在凤凰新闻的业务实践
  7. vscode插件之php插件koroFileHeader(自动生成注释)
  8. 057 生成器和生成器表达式
  9. windows功能_支持 AirPlay/DLNA 功能的 Windows 影音播放软件 5KPlayer
  10. 使用brew services管理服务
  11. FFMPEG 常用命令一览
  12. 【Keras】使用LSTM预测股票走势
  13. Nova8pro自动调节亮度忽亮忽暗问题
  14. LOGO设计辅助图形的人性化设计
  15. Linux服务器压测/拷机软件收集
  16. Android之重写与重载
  17. Alex 我为自己代言
  18. radan7中文使用手册
  19. 西北乱跑娃 -- python识别二维码
  20. 9、图解门禁系统电锁分类及安装方法

热门文章

  1. Html:网站设计的内容概览简介、网页设计流程/工具/内容组成、脚本代码之详细攻略
  2. 单目视觉的运动目标跟踪定位
  3. java判断日期大小,大于等于,小于等于
  4. 《selenium2自动化测试实战-基于python语言》第二遍
  5. directx 12 入门绘制折线
  6. 网关与网络地址(网络号)以及IP地址、广播地址
  7. NOIP2017考前复习
  8. 直播用什么声音测试软件,荔枝FM直播助手测试方法,请看图文说明
  9. onie支持pice硬盘
  10. Python解一元一次方程和一元二次方程,输出数学形式和小数形式