javaweb学习总结 Cookie案例——显示用户上次访问时间

【Javaweb】Cookie应用——显示用户上次访问网站的时间 【背景】        我们平时浏览网页的时候,常常会发现这样一个小细节——网页会提示你上次访问该网页的时间。        那么这个功能是如何实现呢?本篇博客简单介绍 Cookie应用——显示用户上次访问网站的时间。 【Cookie应用】         我们需要在myeclipse中新建一个web工程,并且建立好一个servlet类。         主要代码如下: packag 阅读详情

当访问某些web应用可显示用户上次访问时间,利用cookie实现.设置cookie的name为lastAccess,value的值为lastAccessTime。

package cn.edu.bdu.mc;

import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
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;
@WebServlet("/LastAccessServlet")
public class LastAccessServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        /*
         * 设定一个 cookie 的name : lastAccessTime 读取客户端发送cookie 获得用户上次的访问时间显示
         */
        String lastAccessTime = null;
        // 获取所有的cookie,并将这些cookie存放在数组中
        Cookie[] cookies = request.getCookies();
        for (int i = 0; cookies != null && i < cookies.length; i++) {
            if ("lastAccess".equals(cookies[i].getName())) {
                // 如果cookie的名称为lastAccess,则获取该cookie的值
                lastAccessTime = cookies[i].getValue();
                break;
            }
        }
        // 判断是否存在名称为lastAccess的cookie
        if(lastAccessTime!=null){
            response.getWriter().print("您上次的访问时间" + lastAccessTime);
        }else{
            response.getWriter().print("您是首次访问本站!!!");
        }
        // 创建cookie,将当前时间作为cookie的值发送给客户端
        String currenttime = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(new Date());
        Cookie cookie = new Cookie("lastAccess",currenttime);
        cookie.setMaxAge(60 * 60);// 保存1小时
        // 访问chapter006下资源时回送cookie
        cookie.setPath("/chapter006");
        // 发送 cookie
        response.addCookie(cookie);
    }
}

在tomcat8.3.5上抛出异常java.lang.IllegalArgumentException: An invalid character [32] was present in the Cookie value。

这句话的意思是 一个不识别的字符[32]出现在了cookie当中 由于tomcat的版本比较高,所以在addCookie时是不能使用空格的 而在ASCII码中32对应的就是空格。只要把后台代码中的空格删掉就可以了。

通过借鉴https://blog.youkuaiyun.com/Rain_JN/article/details/75912083?locationNum=4&fps=1帖子  可在d和h之间显示出空格

可以在获取当前登录时间时,使用URLEncoder编码,再设置为cookie的值;在获取cookie的value值的时候,使用URLDecoder解码   在输出的时候使用utf-8输出中文

关于URLEncoder编码和URLDecoder解码可参照https://blog.youkuaiyun.com/justloveyou_/article/details/57156039这篇帖子

package cn.edu.bdu.mc;

import java.io.IOException;
import java.net.URLDecoder;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;

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;

/**
 * Servlet implementation class LastAccessServlet02
 */
@WebServlet("/LastAccessServlet02")
public class LastAccessServlet02 extends HttpServlet {
    private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public LastAccessServlet02() {
        super();
        // TODO Auto-generated constructor stub
    }

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String currenttime = new SimpleDateFormat("yyyy-MM-dd  hh:mm:ss").format(new Date());
        currenttime = URLEncoder.encode(currenttime, "UTF-8");
        Cookie cookie = new Cookie("lastAccess",currenttime);
        cookie.setMaxAge(60 * 60);// 保存1小时
        // 访问chapter006下资源时回送cookie
        cookie.setPath("/chapter006");
        // 发送 cookie
        response.addCookie(cookie);
        String lastAccessTime = null;
        Cookie[] cookies = request.getCookies();
        for (int i = 0; cookies != null && i < cookies.length; i++) {
            if ("lastAccess".equals(cookies[i].getName())) {
                // 如果cookie的名称为lastAccess,则获取该cookie的值
                lastAccessTime = URLDecoder.decode(cookies[i].getValue(),"utf-8");
                break;
            }
        }
        response.setContentType("text/html;charset=UTF-8");
        // 判断是否存在名称为lastAccess的cookie
        if(lastAccessTime!=null){
            response.getWriter().print("您上次的访问时间" + lastAccessTime);
        }else{
            response.getWriter().print("您是首次访问本站!!!");
        }
    }

    /**
     * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        // TODO Auto-generated method stub
        doGet(request, response);
    }

}
 

JavaWeb 使用Cookie实现——显示用户上次访问时间(教材学习笔记) 当用户访问一些web应用时,会自动显示该用户上次登陆的时间,使用Cookie技术可以实现这一要求 一、创建Servlet 在eclipse中创建web-chapter05的项目,并在项目下创建一个cn.itcast.chapter05.cookie.example的包,并在包中编写一个LastAccessServlet的Servlet类,该类主要是获取Cookie信息并将当前时间作为Cooki... 阅读详情

相关推荐

JavaWeb小案例:使用cookie完成用户信息的注册、登录和注销

今天和大家分享一个小案例,也是我的课程作业,就是使用Cookie存储的方式,来完成用户登录界面功能的一个实现。 首先我们要知道,cookie实际上是客户端浏览器的一种存储方式,他是依赖于客户端浏览器的存储文本,也就是说我们可以用它把数据存在浏览器中来保证我们项目对数据的引用,但是它并不是很安全,不过我们这也只是作业,目的是为了让我们更熟练的掌握罢了,话不多说,开始我们项目的搭建: 这个项目分为两个大的部分:Servlet部分和jsp部分,我们分别来说: Servlet部分: 首先是要实现三个..

weixin_61930152的博客 9020

Java Web程序设计 - 显示用户上次访问时间

完成教材5.2小节中的动手实验“任务:显示用户上次访问时间”使用Cookie技术,实现显示用户上次的访问时间的功能。

xizhou202的博客 1229

cookie记录上次访问时间,cookie小例子

cookie记录上次访问时间,cookie小例子

【JavaWeb】案例一:记录用户的上次访问时间

记录用户的上次访问时间

少年你真的要止步于此嘛。 2437

薅“刷宝”羊毛的autojs脚本教程,简单粗暴好用!!!

本教程旨在帮助大家实现用手机或闲置手机来进行“刷宝”平台的收益,能薅多少米就看你的本事了,作者教你的是如何用autojs来进行脚本的挂机教程,掌握了这个思路后,你可以根据自己的实际需要来改进脚本或者撸别的平台:) 适用系统,**android4.0以上,苹果机暂不适用**(大多数android系统手机都是7.0以上,要查看自己手机是android几,见文件夹“视频教程-基础”>1.查看android版本的方法)

rousseaou8的博客 8万+

Servlet—Cookie(显示用户上次访问时间、显示商品浏览历史)

1 . 什么是会话? 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话。 1.1 会话过程中要解决的一些问题? 每个用户在使用浏览器与服务器进行会话的过程中,不可避免各自会产生一些数据,程序要想办法为每个用户保存这些数据。 例如:用户点击超链接通过一个servlet购买了一个商品,程序应该想办法保存用户购买的商品,以便

Oner.wv的专栏 6544

如何在INCA中修改标定量的初始值,并刷回控制器

测试过程中,有些时候,标定量来不及修改,这就需要修改标定量的初始值了,又不想打开模型重新编译,因此直接在INCA中修改,然后再刷回控制器,就成了最佳选择,之前也学过,长时间不用,忘记怎么搞了,最近又用到了,这次记录一下,以后用到的时候,就不用在网上东翻西找了。截止到2023年11月24日,共找到了两种方法可以实现修改。

weixin_43406519的博客 4199

利用cookie技术模拟上次登录时间显示

本实验是基于Java web 中的cookie技术,实现我们在网页很常见的用户上次登录时间。此技术算是简单servlet技术之一,实践起来很容易上手,且能较深入的理解servlet技术的原理与使用。此实验只是进行简单的模拟,目的是为了让大家能够了解熟悉并且简单上手servlet技术和cookie技术。

ZHU_6的博客 1502

PyTorch深度学习实战(41)——循环神经网络与长短期记忆网络

循环神经网络 (Recurrent Neural Network, RNN) 通过将前一个时间步的隐藏状态作为当前时间步的输入,实现对序列数据的建模,由于循环连接的存在,RNN 能够捕获时间依赖关系,然而,RNN 在处理长期依赖性问题时会遇到困难。为了解决这个问题,提出了 LSTM,通过引入门控机制改进 RNN 来有效地处理长期依赖关系。在本节中,了解了 LSTM 和 RNN 的基本原理,并介绍了如何在 PyTorch 中实现 LSTM。

盼小辉丶的博客 1万+

工业相机——靶面尺寸、像元尺寸、分辨率 、传感器尺寸

由Sensor对角线长度表示,单位英寸,这里的1英寸=16mm。——靶面尺寸为宽12.7mm*高9.6mm,对角线16mm。——靶面尺寸为宽8.8mm*高6.6mm,对角线11mm。——靶面尺寸为宽7.2mm*高5.4mm,对角线9mm。——靶面尺寸为宽6.4mm*高4.8mm,对角线8mm。——靶面尺寸为宽4.8mm*高3.6mm,对角线6mm。——靶面尺寸为宽3.2mm*高2.4mm,对角线4mm。——靶面尺寸为宽14*高10.5mm,对角线17mm。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 9605

使用cookie显示用户访问时间,黑马程序员教材案例

使用cookie显示用户访问时间,黑马程序员教材案例,不显示上次访问时间,问题解决

这是我的笔记本,记录学习历程,分享学习经验,菜鸡一枚,感谢支持! 1451

Android AVB 分析(十三)dm-verity 设备是如何映射的?

在上一篇《Android AVB 分析(十二)嵌入式设备安全中的 dm-verity 简介》介绍 dm-verity 原理的时候,作者提供了一个 dm-verity 演示的例子。本篇我们基于 AOSP 源码 `android-13.0.0_r41` 实际编译生成的 Google Pixel 7 (“panther”) 设备的 system 分区镜像进行 dm-verity 设备验证实战。

洛奇看世界 2438

Cookie经典案例—实现显示用户上次服务时间的显示

本篇博客让我们来了解JavaWeb中的会话和会话技术,了解什么是Cookie,掌握Cookie对象的使用. 1.什么是会话? 1.会话:一次会话中包含多次请求和响应. 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止. 2.会话的功能:在一次会话中,实现数据共享. 3.会话的方式: 1.客户端会话技术:Cookie 2.服务器端会话技术:Session 2.Cookie: 1.概念:客户端会话技术,将数据保存到客户端 2.常用方法: 创建Cookie对象.

孙宇航的博客 4148

『Apisix进阶(九)』基于Upstream实现服务转发的最佳实践

本篇文章将以服务转发为核心,带你从原理到实战,深入了解 Upstream 的配置方法与常用场景。

老陈聊架构 1512

STM32智能小车控制舵机转向

文章目录前言一、舵机简单介绍及接线方式二、cubeMX配置三、代码解析总结 前言 本文将带大家学习如何驱动舵机转向 一、舵机简单介绍及接线方式 信号线(黄线)红线(电源线)棕色(地线) 舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms-2.5ms范围内的角度控制脉冲部分,总间隔为2ms。以180度角度伺服为例,那么对应的控制关系是这样的: 0.5ms--------------0度; 1.0ms------------45度; 1.5ms------------90度; 2

m0_49476241的博客 8612

JavaWeb——实现记录并显示用户上次访问的时间

需求分析: 1. 可以采用Cookie来完成 2. 在服务器中的Servlet判断是否有该用户的cookie 1. 有:不是第一次访问 1. 响应数据:欢迎回来,用户的名字,上次访问时间为yyyy年MM月dd日 HH:mm:ss 2. 写回Cookie:用户名=yyyy年MM月dd日 HH:mm:ss 2. 没有:是第一次访问 1. 响应数据:您好,欢迎您首次访问 2. 写回Cookie:用户名=...

鹿谷門実的博客 6197

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

JavaWeb基础-Cookie的简单使用(记录用户上次访问时间)

Cookie的简单使用(记录用户上次访问时间) 获得从浏览器带过来的Cookie 通过HttpServletRequest对象中的方法: 向浏览器回写Cookie 通过HttpServletRequest对象中的方法: Cookie的构造 代码实现记录用户的上次访问时间,并且回显本次访问时间 工具类: package utils; import javax.servlet.http.Cookie; /* 查找指定名称Cookie的工具类 */ public class CookieUtils

二丫的博客 862

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Java Web显示用户上次访问时间(实例一)

**利用Cookie技术实现显示用户上次访问的功能** import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import javax.servlet.ServletException; import javax.servlet.http.C...

yueqingchun的博客 1万+

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

JavaWeb使用Cookie记住上次的访问时间/附完整源码

JavaWeb入门小案例,Servlet和JSP实现使用Cookie存储上次访问网页的时间

记录分享编程与冲浪知识 1686

Cookie实现是否第一次登陆/显示上次登陆时间

Cookie实现是否第一次登陆/显示上次登陆时间 最近刚好看到Cookie这方面知识,对Servlet部分知识已经生疏,重新翻出已经遗弃角落的《JavaWeb开发实战经典》,重新温习了Cookie知识,并总结一下Cookie知识,以供大家借鉴。 Cookie 1.概念:客户端会话技术,将数据保存到客户端 2.使用方法 1、创建Cookie对象 new Cookie(String name,...

潇歌的博客 1446

javaWeb显示用户上次登录时间,如果是第一次登录,则显示“您是第一次访问本网站”

思路: 通过request.getCookies()获取本机cookie并创建cookie数组,对cookie数组进行遍历, 如果没有key为lasttime的cookie,则是第一次访问, 通过response.addCookie()方法添加key为lasttime,value为当前日期的cookie; 如果不是第一次访问,则获取lasttime的value值即为上次访问的时间 /** * @...

qq_43460095的博客 3549

JavaWeb会话管理之用户上次访问时间

package iz.cast; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.h

Calm微笑 908

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

1 package cn.itcast.access; 2 3 import javax.servlet.ServletException; 4 import javax.servlet.annotation.WebServlet; 5 import javax.servlet.http.Cookie; 6 import javax.servlet.htt...

diaopitian0181的博客 218

通过cookie技术实现记录用户的上一次访问时间并显示出来

package com.javaweb.servlet; /*案例:网站为了提高用户的感受,将用户的上一次的访问时间  * 显示给用户使用cookie来实现  * 浏览器关闭之后再次打开去访问,发现又变成第一次访问了  * 注意:默认情况下。一个cookie的有效期是浏览器进程,那么在浏览器关闭之后浏览器进程就没有了  * 那么相应的cookie信息也就没有了,如何实现在浏览器关闭之后,

zhyzh134的博客 3998

javaWeb-02-cookie案例-显示用户上次访问网站的时间

<!-- .panel_head1 {clear:both; height:30px; padding:0 5px; color:#333; font:bold 22px/30px Arial; text-indent:5px} .notice1 {margin:10px 10px; padding:2px 4px 2px 20px; border:dash

Tech My Life 2263
上一篇: 寨板p45黑苹果10.12.6
下一篇: javaweb学习总结 Session案例——实现购物车
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值