• 简单Java后端的Cookie实现(时间戳)


    在前博客 运行第一个servlet后

    我们来简单实现一个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存在

     

    第二次才会显示

     

  • 相关阅读:
    CMake: Could NOT find PkgConfig
    Ogre学习教程:Ogre1.8.1+VS2010环境配置2(转)
    matlab操作(整理)
    Ogre学习教程:Ogre1.8.1+VS2010环境配置(转)
    辐射度等(转)
    左手坐标系和右手坐标系(转)
    如何查找论文是否被SCI,EI检索(转)
    安装OpenCV:OpenCV 3.0、OpenCV 2.4.8、OpenCV 2.4.9 +VS 开发环境配置(转)
    Web service是什么?(转)
    Scrapy 设置请求头
  • 原文地址:https://www.cnblogs.com/cckong/p/14083209.html
Copyright © 2020-2023  润新知