Java后端Cookie实现(时间戳)代码实例

我们来简单实现一个cookie。

一、简单介绍

Cookie 是一些数据, 存储于你电脑上的文本文件中。

当 web 服务器向浏览器发送 web 页面时,在连接关闭后,服务端不会记录用户的信息。

Cookie 的作用就是用于解决 "如何记录客户端的用户信息":

  • 当用户访问 web 页面时,他的名字可以记录在 cookie 中。
  • 在用户下一次访问该页面时,可以在 cookie 中读取用户访问记录

(博客园cookie界面)

二、简单实现

0.maven引入依赖

servlet和jsp的依赖

1.java代码编写

package com.lei;

import javax.servlet.ServletException;
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.io.PrintWriter;
import java.util.Date;

public class CookieDemo01 extends HttpServlet {
  @Override
  protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    req.setCharacterEncoding("utf-16");
    resp.setCharacterEncoding("utf-16");

    PrintWriter out =resp.getWriter();
    Cookie[] cookies=req.getCookies();

    if(cookies!=null)
    {
      out.write("您上一次访问时间为:");

      for(int i=0;i< cookies.length;i++)
      {
        Cookie cookie=cookies[i];
        if(cookie.getName().equals("lastLoginTime"))
        {
          long lastLoginTime=Long.parseLong(cookie.getValue());
          Date date=new Date(lastLoginTime);
          out.write(date.toString());

        }
      }
    }
    else{
      out.write("first time come to this website!");
    }
    Cookie cookie=new Cookie("lastLoginTime",System.currentTimeMillis()+"");
    resp.addCookie(cookie);
  }

  @Override
  protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
    doGet(req, resp);
  }
}

2.设置web-xml里面加入 servlet注册和映射

<!DOCTYPE web-app PUBLIC
    "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
           http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
     version="4.0"
     metadata-complete="true">

<servlet>
  <servlet-name>cookie</servlet-name>
  <servlet-class>com.lei.CookieDemo01</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>cookie</servlet-name>
  <url-pattern>/cookie</url-pattern>
</servlet-mapping>
</web-app>

三、运行效果

第一次cookie数组为空 不显示登陆时间

按理说应该会显示else里面的内容first time come to this website!

但是显示的是

只是因为下面的第二张图 是因为浏览器(我的是edge浏览器)默认还有一个cookie

也就是说我们第一次在执行页面(如果是从8080页面输入url跳转的)时 有别的cookie存在

第二次才会显示

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • java中Cookie被禁用后Session追踪问题

    一.服务器端获取Session对象依赖于客户端携带的Cookie中的JSESSIONID数据.如果用户把浏览器的隐私级别调到最高,这时浏览器是不会接受Cookie.这样导致永远在服务器端都拿不到的JSESSIONID信息.这样就导致服务器端的Session使用不了. Java针对Cookie禁用,给出了解决方案,依然可以保证JSESSIONID的传输. Java中给出了再所有的路径的后面拼接JSESSIONID信息. 在 Session1Servlet中,使用response.encodeURL

  • 在java中http请求带cookie的例子

    如下所示: String urlPath = "你的请求链接"; String cookie = "要发送的cookie"; URL url = new URL(urlPath); URLConnection conn = url.openConnection(); conn.setRequestProperty("Cookie", cookie); conn.setDoInput(true); BufferedReader br = new B

  • JavaWeb使用Session和Cookie实现登录认证

    后台管理页面往往需要登录才可以进行操作,这时就需要Seession来记录登录状态 要实现起来也是非常简单,只需要自定义一个HandlerInterceptor就行了 自定义的HandlerInterceptor也只有短短几行代码 public class LoginInterceptor implements HandlerInterceptor { @Override public void afterCompletion(HttpServletRequest request, HttpSer

  • java中Servlet Cookie取不到值原因解决办法

    java中Servlet Cookie取不到值原因解决办法 现象: 在测试带Cookie的HTTP请求时发现,服务端用request.getHeader("cookie")可以去到值; 但是用request.getCookies()却不行 Cookie mycookies[] = request.getCookies(); 中永远获取不到uid的值:(80端口号除外) 原因: 查了浏览器的具体cookie值,发现 http://localhost:8080/ 访问的时候,cookie值

  • JavaWeb 中Cookie实现记住密码的功能示例

    本文主要内容: •1.什么是Cookie •2.Cookie带来的好处 •3.Cookie的主要方法 一.什么是Cookie cookie是一种WEB服务器通过浏览器在访问者的硬盘上存储信息的手段.Cookie的目的就是为用户带来方便,为网站带来增值.虽然有着许多误传,事实上Cookie并不会造成严重的安全威胁.Cookie永远不会以任何方式执行,因此也不会带来病毒或攻击你的系统.另外,由于浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为

  • Java接口测试Cookie与token原理解析

    一.Cookie与token机制测试 Cookie与Session token机制 cookie/session机制需要在服务端保存大量的session信息,造成严重负担,而token机制则避免记录大量信息,采用服务器签发的token完成验证. 1.客户端使用用户名跟密码请求登录 2.服务端收到请求,去验证用户名与密码 3.验证成功后,服务端会签发一个 Token,再把这个 Token 发送给客户端 4.客户端收到 Token 以后可以把它存储起来,比如放在 Cookie 里或者 Local S

  • Java 模拟cookie登陆简单操作示例

    本文实例讲述了Java 模拟cookie登陆简单操作.分享给大家供大家参考,具体如下: 最近在做将禅道上的功能接口做到手机端,在做登陆的时候,看了禅道的源码,是由cookie来登陆,所以要做一个模拟cookie登陆的接口,将拿到的cookie放到每次接口请求的头部中去,就可以正常访问了. import java.io.OutputStreamWriter; import java.net.HttpURLConnection; import java.net.URL; /** * @Author:

  • Java Web学习之Cookie和Session的深入理解

    cookie机制和session机制的区别 具体来说cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案. 同时我们也看到,由于才服务器端保持状态的方案在客户端也需要保存一个标识,所以session 机制可能需要借助于cookie机制来达到保存标识的目的,但实际上还有其他选择 会话cookie和持久cookie的区别 如果不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口,cookie就消失了.这种生命期为浏览会话期

  • java使用Cookie判断用户登录情况的方法

    本文实例为大家分享了java使用Cookie判断用户登录情况的方法,供大家参考,具体内容如下 1.判断是否登录 public boolean isLogin() { Set<Cookie> cookies = this.browser.getCookies(); String JSESSIONIDID = "JSESSIONID"; String sessionIdID = "sessionId"; String loginID = "logi

  • java实现python session功能代码实例

    这篇文章主要介绍了java实现python session功能代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 怎么在java中实现类似于python的requests模块的session功能呢.java也是可以实现的,用java的okhttp包可以实现. 在pom.xml中加入相关依赖 <!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp --> <

  • Java 读取excel 文件流代码实例

    这篇文章主要介绍了Java 读取excel 文件流代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码如下 public static void initType(String path) { try { //1 获取excel文件流 excel xls 文件 暂不支持xlsx if (path.contains("xlsx") || path.contains("XLSX")) { System.err.

  • java io读取文件操作代码实例

    这篇文章主要介绍了java io读取文件操作代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 主要分为字节读取和字符读取,字节读取可以一个一个读取和字节数组读取,字符读取同样之,字符读取适合文本读取,字节读取皆可以 这里直接上代码,读取文件的9个小demo package com.io; import org.junit.Test; import java.io.*; public class FileTest { //1.字节流字节一个

  • JAVA利用递归删除文件代码实例

    这篇文章主要介绍了JAVA利用递归删除文件代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 今天需要用到删除文件的方法,一年前这个时候也写过当时,写的是一个文件夹下面不存在其他文件夹,只存在子文件.但是那时不知道存在什么情况,总是出现文件删不掉,虽然到现在也不知道什么原因,猜测 是什么流被占用吧[我记得当时流都关了的... 今天是利用递归删除,发现递归真的蛮好用的,就是有时效率太低...虽然简单但是也贴上来吧 public boolean

  • java 继承访问成员变量代码实例

    这篇文章主要介绍了java 继承访问成员变量代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 package java09; //创建父类 public class Fu { int numFu = 10; int num =100; public void methodFu(){ System.out.println(num); } } package java09; //创建子类 public class Zi extends Fu

  • Java二分查找算法实现代码实例

    这篇文章主要介绍了Java二分查找算法实现代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 二分查找: 两种方式: 非递归方式和递归方式 主要思路: 对于已排序的数组(先假定是从小到大排序), 先定义两个"指针", 一个"指向"首元素low, 一个"指向"末尾元素high. 然后, 开始折半比较, 即让要查找的数与数组中间的元素(索引为 low+high/2)比较. 若要查找的数比中间数小

  • 基于Java创建一个订单类代码实例

    这篇文章主要介绍了基于Java创建一个订单类代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 需求描述 定义一个类,描述订单信息 订单id 订单所属用户(用户对象) 订单所包含的商品(不定数量个商品对象) 订单总金额 订单应付金额: 总金额500~1000,打折85折 总金额1000~1500,打折80折 总金额1500~2000,打折70折 总金额超过2000,打折65折 在此基础上,还要看用户的vip等级 用户vip等级为:一般会员,

  • Java GZIP压缩与解压缩代码实例

    这篇文章主要介绍了Java GZIP压缩与解压缩代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.GZIP压缩 public static byte[] compress(String str, String encoding) { if (str == null || str.length() == 0) { return null; } ByteArrayOutputStream out = new ByteArrayOutput

  • Java List分页功能实现代码实例

    这篇文章主要介绍了Java List分页功能实现代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 今天,工作上,由于业务的一些特殊性,需要拿到数据后在java代码中进行分页. 写了一个工具类,记录如下: import java.util.ArrayList; import java.util.List; import org.apache.commons.collections.CollectionUtils; /** * java内存分

  • Java CPU性能分析工具代码实例

    这篇文章主要介绍了Java CPU性能分析工具代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 背景 有处理过生产问题的同学基本都能遇到系统忽然缓慢,CPU突然飙升,甚至整个应用请求不可用.当出现这种情况下,在不影响数据准确性的前提下,我们应该尽快导出jstack和内存信息,然后重启系统,尽快回复系统的可用性,避免用户体验过差.本文针对CPU飙升问题,提供该问题的排查思路,从而能够快速定位到某线程甚至某快代码导致CPU飙升,从而提供处理该

随机推荐