记住上一次访问时间

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. IPv6 — 实践

    目录 文章目录 目录 前文列表 常用命令 开启/关闭 IPv6 支持 在 CentOS7 上配置 IPv6 地址 自动获取链路本地地址 配置静态全球唯一地址 配置临时 IPv6 地址 添加 IPv6 ...

  2. java基础 韩顺平老师的 异常 自己记的部分笔记

    443,异常处理入门 package com.hspedu.exception_; public class Exception { public static void main(String[] ...

  3. Ceph配置与认证授权

    目录 Ceph配置与认证授权 1. 为什么现在不采用修改配置文件的方式了呢? 2. Ceph元变量 3. 使用命令行修改配置 3.1 全部修改(使用服务名) 3.2 部分修改(修改进程) 3.3 临时 ...

  4. SpringMVC在处理Ajax请求后返回void导致前台Ajax回调函数不执行

    问题简述 在一次SpringMVC项目中,前台通过Ajax请求,准备修改数据库中的数据.因为Ajax请求只是让后台更改数据,所以Controller方法根本不需要返回给前台任何数据,所以我们将Cont ...

  5. Android 12(S) ALooper AHandler AMessage(一)

    卧榻之侧岂容他人酣睡,到现在ALooper AHandler AMessage的工作原理一直都没搞懂,很慌!看他们的路径都在libstagefright/foundation下,作为一个foundat ...

  6. NOIP模拟96

    T1 树上排列 解题思路 是一个一眼切的题目... 看到题目第一眼就是 Deepinc 学长讲的可重集,无序 Hash . 直接套上一颗线段树再加上树剖, \(nlog^2n\) 直接过,好像也可以树 ...

  7. NOIP模拟64

    T1 三元组 解题思路 一看题面,好像是一道数学题,但不完全是,或者说根本不是... 比较好想到的是 \(\mathcal{O}(n^2)\) 和 \(\mathcal{O}(nk)\) 的做法,然后 ...

  8. autojs拉人进群

    /* 微信 version:8.0.1 语言:AutoJs [https://hyb1996.github.io/AutoJs-Docs/#/] @author:奔跑的前端猿 */ auto.wait ...

  9. k8s——pod探针

    探针 简单理解: 容器内应用的检测机制,根据不同的探针来判断容器应用当前的状态 为什么会需要探针 # 情况一 现在有一个商品的微服务,跑着跑着突然内存溢出,程序崩掉了,外面的pod虽然在,但是也相当于 ...

  10. memoization(计算属性-记忆组件)

    连续两次相同传参,第二次会直接返回上次的结果,每次传参不一样,就直接调用函数返回新的结果,会丢失之前的记录,并不是完全记忆,可以在它的参数中传入state数据从而实现了类似Vue中的计算属性功能 # ...