记住上一次访问时间

1.需求:
1.访问一个Servlet,如果是第一次访问,则提示:您好,欢迎您首次访问
2.如果不是第一次访问,则提示:欢迎回来,您上次访问的时间为:显示字符串
2.分析
1.可以采用cookie来完成
2.在服务器中的Servlet判断是否有一哥们名为lastTime的cookie
1.有:不是第一次访问
1.响应数据:欢迎回来,您上次访问时间为:2018年6月10日11:20:22
2.写回Cookie:lastTime=2018年6月10日11:20:01
2.没有:第一次访问
1.响应数据:您好,欢迎您首次访问
2.写回Cookie:lastTime=2018年6月10日11:20:01

代码如下

package cn.itcast.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 java.io.IOException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.logging.SimpleFormatter; /**
* Cookie快速入门
* 在服务器中的Servlet判断是否有一哥们名为lastTime的cookie
* 1.有:不是第一次访问
* 1.响应数据:欢迎回来,您上次访问时间为:2018年6月10日11:20:22
* 2.写回Cookie:lastTime=2018年6月10日11:20:01
* 2.没有:第一次访问
* 1.响应数据:您好,欢迎您首次访问
* 2.写回Cookie:lastTime=2018年6月10日11:20:01
*/
@WebServlet("/CookieTest")
public class CookieTest extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 设置响应的消息体的数据格式以及编码
response.setContentType("text/html;charset=utf-8");
//获取所有Cookie
Cookie[] cookies=request.getCookies();
boolean flag=false;//没有cookie1为lastTime
//设置cookie的value
// 获取当前时间的字符串,重新设置cookie的值,重新发送cookie
Date date=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String str_date=sdf.format(date);
//url编码
System.out.println("编码前:"+str_date);
str_date= URLEncoder.encode(str_date,"utf-8");
System.out.println("编码后:"+str_date);
//遍历cookies数组
if(cookies!=null&&cookies.length>0){
for(Cookie cookie:cookies){
//获取cookie的名称
String name=cookie.getName();
//判断名称是否有:lastTime
if("lastTime".equals(name)){
//有该Cookie,不是第一次访问
flag=true;//有cookie1为lastTime
cookie.setValue(str_date);
//设置cookie的存活时间
cookie.setMaxAge(60*60*24*30);//一个月
response.addCookie(cookie); //响应数据 //获取Cookie的value,时间
String value=cookie.getValue();
//url解码
System.out.println("解码前:"+value);
value= URLDecoder.decode(value,"utf-8");
System.out.println("解码后:"+value);
response.getWriter().write("<h1>欢迎回来 您上次访问时间为:"+value+"</h1>"); break;
}
}
}
if(cookies==null||cookies.length==0||flag==false){
//第一次访问 Cookie cookie=new Cookie("lastTime",str_date);
//设置cookie的存活时间
cookie.setMaxAge(60*60*24*30);//一个月
response.addCookie(cookie);
response.getWriter().write("<h1>您好,欢迎您首次访问</h1>");
}
} protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
}

Java-记住上一次访问时间案例的更多相关文章

  1. 回话技术-Cookie-记录上一次访问时间

    效果: 第一次访问: 再次访问: <%@ page import="java.util.Date" %> <%@ page import="java.t ...

  2. cookie - 提示上一次访问该网页的时间

          案例:记住上一次访问时间         1. 需求:             1. 访问一个Servlet,如果是第一次访问,则提示:您好,欢迎您首次访问.             2. ...

  3. java 使用cookie记录用户上一次访问的时间 记住 用户的 登录名

    package cn.itcast.cookie; import java.io.IOException; import java.io.PrintWriter; import java.util.D ...

  4. cookie 案例 记住上一次的访问时间

    需求:记住上一次的访问时间 第一次访问Servlet 提示 欢迎首次访问 之后的访问 都提示 您上次的访问时间为:"""""""& ...

  5. Java 之 cookie 记住用户登录时间案例

    需求: 1. 访问一个Servlet,如果是第一次访问,则提示:您好,欢迎您首次访问. 2. 如果不是第一次访问,则提示:欢迎回来,您上次访问时间为:显示时间字符串 分析: 1. 可以采用Cookie ...

  6. cookie实例---显示上一次访问的时间与java.lang.IllegalArgumentException: An invalid character [32] was present in the Cookie value

    创建Cookie,名为lasttime,值为当前时间,添加到response中: 在A.jsp中获取请求中名为lasttime的Cookie: 如果不存在输出“您是第一次访问本站”,如果存在输出“您上 ...

  7. JavaWeb案例:上次访问时间 Cookie技术

    package cn.itcast.access; import javax.servlet.ServletException; import javax.servlet.annotation.Web ...

  8. 解决:阿里云ECS上启动tomcat后,第一次访问时间特别长

    Re在ECS上启动tomcat后,第一次访问时间特别长      2017-04-25 10:16:04 INFO com.world.socket.ServerSocketListener  25- ...

  9. 如何用golang获取linux上文件的访问/创建/修改时间

    在linux上想获取文件的元信息,我们需要使用系统调用lstat或者stat. 在golang的os包里已经把stat封装成了Stat函数,使用它比使用syscall要方便不少. 这是os.Stat的 ...

  10. Servlet案例6:显示用户的上次访问时间

    这里是cookie的简单应用 告诉用户您的上次访问时间是:xxxx-xx-xx xx:xx:xx 思路: 第一次访问该网站时候,记录当前访问时间(new Date()) 把当前时间以cookie的形式 ...

随机推荐

  1. 让创意在幻觉中肆虐: 认识Illusion Diffusion AI

    人工智能新境界 在不断发展的人工智能领域,一款非凡的新工具应运而生,它能将普通照片转化为绚丽的艺术品.敬请关注Illusion Diffusion,这是一个将现实与想象力完美融合的AI驱动平台,可创造 ...

  2. 导入使用es

    from django.shortcuts import render, HttpResponsefrom elasticsearch import Elasticsearchfrom elastic ...

  3. C++ Virtual Functions

    Virtual这个关键字在多态中扮演一个绝对重要的角色,只要member functions声明的前面加上virtual的关键字,他就会成为 Virtual member functions.任何一个 ...

  4. 为什么wait()、notify()方法需要和synchronized一起使用

    提示:更多优秀博文请移步博主的GitHub仓库:GitHub学习笔记.Gitee学习笔记 Obj.wait()与Obj.notify()必须要与synchronized(Obj)一起使用,也就是wai ...

  5. Pandas学习之路【3】

    新增列的一些操作 1.新增一个列,直接给列赋值 # 取所有行,新增的列为new_col df.loc[:, 'new_col'] = 100 2.使用df.apply方法给新增的列赋值 def get ...

  6. iOS技术管理思路

    iOS技术管理思路

  7. 面试官:说说Netty的核心组件?

    Netty 核心组件是指 Netty 在执行过程中所涉及到的重要概念,这些核心组件共同组成了 Netty 框架,使 Netty 框架能够正常的运行. Netty 核心组件包含以下内容: 启动器 Boo ...

  8. .NET C#程序启动闪退,在安装或者程序文件下能正常运行,但通过路径却无法运行

    .NET C#程序启动闪退,目录导致的问题 这是第2次踩这个坑了,很小的编程细节,容易忽略,所以写个博客,分享给大家. 1.第一次坑:是windows 系统把程序运行成服务,找不到配置文件,原因是以服 ...

  9. codemirror-editor-vue3 编辑器只要换行保存就会有小红点

    先看示例 找了篇博客写的贼详细 https://blog.csdn.net/xujingyiss/article/details/118992763 只要设置这二个        let conten ...

  10. kettle从入门到精通 第五十八课 ETL之kettle HTTP post使用教程

    1.今天群里有位朋友问我有没有关于调用http接口的kettle 示例,我下意识的去翻我的公众号推文,愣是没找到.果断开始撸. 2.本次演示流程通过调用接口[网易云音乐随机歌曲],然后解析返回的数据, ...