【09 cookie and session】

news2024/11/14 20:50:13

cookie and session

  • 一、cookie
    • 1. 会话技术
    • 2. 什么是cookie
    • 3. cookie的属性
    • 4. cookie方法
    • 5. cookie添加和获取
    • 6. 需求案例
    • 7. cookie的细节
  • 二、session
    • 1. HttpSession介绍
    • 2. HttpSession常用方法
    • 3. HttpSession获取
    • 4. HttpSession使用
    • 5. HttpSession使用细节

一、cookie

cookie:客户端会话管理技术

1. 会话技术

在这里插入图片描述

2. 什么是cookie

一个普通的java类
在这里插入图片描述
在这里插入图片描述

3. cookie的属性

在这里插入图片描述

4. cookie方法

在这里插入图片描述

5. cookie添加和获取

在这里插入图片描述

6. 需求案例

需求:
通过cookie记录最后访问时间,并在浏览器上显示出来
目的:
掌握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.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * cookie 的使用
 */

@WebServlet("/test")
public class Test extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //1. 通过响应对象写出提示信息
        resp.setContentType("text/html;charset=UTF-8");
        PrintWriter pw = resp.getWriter();
        pw.write("欢迎访问本网站,您最后的访问时间为:<br>");
        //2.创建cookie对象,用于记录最后时间
        Cookie cookie=new Cookie("time",System.currentTimeMillis()+"");
        //3.设置最大存活时间 1h
        cookie.setMaxAge(3600);
        //4. 将cookie对象添加到客户端
        resp.addCookie(cookie);
        //5. 获取cookie
        Cookie[] arr = req.getCookies();
        for (Cookie c:arr){
            if ("time".equals(c.getName())){
                //6. 获取cookie对象中的value
                String value = c.getValue();
                SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                pw.write(sdf.format(new Date(Long.parseLong(value))));
            }
        }


    }

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

在这里插入图片描述

7. cookie的细节

cookie路径限制:创建cookie的路径 获取要一致 ,/servlet开始创建的话,获取也要以此开头
在这里插入图片描述

二、session

1. HttpSession介绍

HttpSession服务器会话管理技术,是一个接口
在这里插入图片描述

2. HttpSession常用方法

在这里插入图片描述

3. HttpSession获取

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. HttpSession使用

在这里插入图片描述


import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

/**
 * seesion基本使用
 **/
@WebServlet("/demo01")
public class ServletDemo01 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
       //1.获取请求的用户名
        String username = req.getParameter("username");
        //2. 获取HttpSession的对象
        HttpSession session = req.getSession();
        System.out.println(session);
        System.out.println(session.getId());
        //3.将用户名信息添加到共享数据中
        session.setAttribute("username",username);
    }

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

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

/**
 * seesion基本使用
 **/
@WebServlet("/demo02")
public class ServletDemo02 extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

        //1. 获取HttpSession的对象
        HttpSession session = req.getSession();
        System.out.println(session);
        System.out.println(session.getId());
        //2.获取共享数据
        Object username = session.getAttribute("username");
        //3.将数据响应给浏览器
        resp.getWriter().write(username+"");
    }

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

是同一个session对象
在这里插入图片描述

在这里插入图片描述
成功:
在这里插入图片描述

5. HttpSession使用细节

在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/439994.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【MongoDB】什么是MongoDB?MongoDB有什么特点?MongoDB的适用场景?

什么是MongoDB数据库&#xff1f; MongoDB是一个开源、高性能、支持海里数据存储的文档型数据库。 MongoDB是一个高效的非关系型数据库&#xff08;不支持表关系&#xff1a;只能操作单表&#xff09; MongoDB是一个介于关系数据库和非关系数据库之间的产品&#xff0c;是非关系…

postman安装

目录 下载、安装 Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。 Postman原是Chrome浏览器的插件&#xff0c;可以模拟浏览器向后端服务器发起任何形式(如:get、post)的HTTP请求 使用Postman还可以在发起请求时&#xff0c;携带一些请求参数、请求头等信息…

debezium docker订阅oracle 11g

debezium 依赖于kafka&#xff0c;kafka依赖于zookeeper。 zookeeper实现了kafka消息的一致性&#xff0c;debezium 把订阅的数据推送到kafka dockerFile FROM debezium/connect:1.6 ENV KAFKA_CONNECT_JDBC_DIR$KAFKA_CONNECT_PLUGINS_DIR/kafka-connect-jdbc ENV INSTANT_C…

登陆拼多多获取整站实时商品详情数据,商品列表,商品优惠券,包括数据采集,清洗,分析,封装等过程,作为爬虫的课程。

前言 拼多多平台是一个众所周知的一个电商平台&#xff0c;基本上什么都能找到&#xff0c;而且价格比较优惠。 想业余做电商赚点小钱或买点东西&#xff0c;就需要对比平台上各个卖家的商品信息&#xff0c;所谓货比三家&#xff0c;为商品定一个合理的价位或淘一个合理&…

[Python基础] 学生管理系统(存储读取学生信息)

学生管理系统&#xff1a;应该算是语言语法学习过程中一个比较适合测试语法熟练度的代码案例了。 文章目录 思路main&#xff08;入口函数&#xff09;menu&#xff08;菜单&#xff09;Add&#xff08;新增学生&#xff09;Display()&#xff08;显示学生&#xff09;Find()&a…

::before和::after伪元素的用法案例

CSS3中伪类采用单冒号写法&#xff0c;伪元素采用双冒号写法。 伪类举例——:hover,:link,:active,:target。 伪元素举例——::before,::after,::first-letter,::first-line,::selection。 一、介绍 今天写网页时遇到一个问题&#xff0c;视口的背景中插入一个小图标的话&a…

Python进阶项目--只因博客(bootstrap+flask+mysql)

前言 1.全民制作人们大家好&#xff0c;我是练习时长两年半的个人练习生只因坤坤&#xff0c;喜欢唱&#xff0c;跳&#xff0c;rap&#xff0c;篮球&#xff0c;music......在今后的节目中&#xff0c;我还准备了很多我自己作词、作曲、编舞的原创作品&#xff0c;期待的话&am…

VirtualBox虚拟机后台运行

前言 在Windows下的VirtualBox运行如Linux的虚拟机时&#xff0c;并不需要图形化的界面&#xff0c;我们不必次次通过VirtualBox的官方界面进入&#xff0c;解决鼠标键盘定位等问题。可以通过Putty等软件使用SSH进行连接控制&#xff0c;但是官方界面并没有在后台运行选项。 需…

Nginx快速上手~

注&#xff1a;本文针对官网的快速入门教程进行一个中文的解释&#xff0c;以帮助英文阅读能力较差的学习者快速上手 参考官网连接Beginners Guide (nginx.org) Centos下的安装 sudo yum install yum-utils # 创建文件 vim /etc/yum.repos.d/nginx.repo # 输入以下内容 ####…

项目1实现登录功能方案设计第四版

需求 优化点:MySQL表常用功能模块实现方案 index页面home页面 需求 实现一个登录功能 实现的功能 注册(邮箱注册) 登录(邮箱密码) 重置密码 查看操作记录(登录, 注册, 重置密码, 登出. 都算操作) 登出 在第3版的基础上进行优化:\ 优化点: 接口设计 1. 发送注册验证码: 路径: PO…

五一将迎2亿人次出行,君子签助力旅行社合规高效签旅游电子合同

近日&#xff0c;为规范旅游市场秩序&#xff0c;促进旅行社高质量发展&#xff0c;文旅部发布了《文化和旅游部办公厅关于进一步规范旅游市场秩序的通知》&#xff08;下称《通知》&#xff09;&#xff0c;对旅游业提出了新的要求。 《通知》中规范了旅行社经营行为。旅行社要…

flink任务处理下线流水数据,数据遗漏不全(三)

flink任务处理下线流水数据&#xff0c;数据遗漏不全&#xff08;二&#xff09; 居然还是重量&#xff0c;做一个判断&#xff0c;如果是NaN 就直接获取原始的数据的重量 测试后面会不会出现这个情况&#xff01; 发现chunjun的代码运行不到5h以后&#xff0c;如果网络不稳…

EasyCVR平台基于GB28181协议的语音对讲配置操作

EasyCVR基于云边端协同&#xff0c;具有强大的数据接入、处理及分发能力&#xff0c;平台可支持海量视频的轻量化接入与汇聚管理&#xff0c;可提供视频监控直播、视频轮播、视频录像、云存储、回放与检索、智能告警、服务器集群、语音对讲、云台控制、电子地图、平台级联等功能…

IT行业里的热门技术

© Ptw-cwl 文章目录 1. 人工智能&#xff08;AI&#xff09;和机器学习&#xff08;ML&#xff09;2. 大数据3. Web2.04. 移动应用程序开发5. 物联网6. 云计算7. 区块链8. 5G技术9. 虚拟现实&#xff08;VR&#xff09;和增强现实&#xff08;AR&#xff09; 现在如果问…

如何使用Midjourney辅助建筑设计,常用的提示和使用效果展示(内附Midjourney提示词网站)

文章目录 一.Midjourney建筑设计的提示技巧1. prompt模板12.prompt模板2 二、著名建筑师为例1.Zaha Hadid&#xff08;扎哈哈迪德&#xff09;2.Ludwig Mies van der Rohe&#xff08;路德维希密斯凡德罗&#xff09;3.Renzo Piano&#xff08;皮亚诺&#xff09;4.Stefano Boe…

PEIS源码,体检管理系统源码,C#医院体检系统源码

PEIS体检管理系统源码&#xff0c;医院体检系统源码PEIS源码&#xff0c;商业级源码&#xff0c;有演示。 PEIS医院体检管理系统采用C/S结构&#xff0c;前台开发工具为Vs2012&#xff0c;后台数据库采用oracle大型数据库。核心功能有&#xff1a;体检档案的录入、体检报告的输…

从入门到精通:SEO站外优化全面解析

通过​​第三章​​上下连续两期的干货内容&#xff0c;相信你已经掌握了 SEO 优化的基本方法&#xff0c;但你有没有发现&#xff1a;之前的内容都是针对网站本身进行优化的方法&#xff0c;其实&#xff0c;SEO 还有相当一部分功夫要放在站外优化上。 问题来了&#xff1a;站…

上海震坤行工业超市聚焦量具量仪市场,助力企业实现测量数字化

上海震坤行工业超市聚焦量具量仪市场&#xff0c;助力企业实现测量数字化 近日&#xff0c;量具量仪三大品牌哈量、广陆、英示的三位重磅嘉宾及震坤行磨具量具产线总经理&#xff0c;走进震坤行工业超市直播间。带来了一场“聚焦量具量仪市场&#xff0c;助力企业实现测量数字…

C语言中结构体(struct)的详细分解与使用

目录 第一&#xff1a;结构体的定义 第二&#xff1a;规则 第三&#xff1a;结构体声明 第四&#xff1a;C 语言结构体定义的三种方式 第五&#xff1a;对于结构体变量的初始化 第六&#xff1a;整体与分开 第七&#xff1a;结构体长度 第八&#xff1a;嵌入式开发中&am…

第 三 章 UML 类图

文章目录 前言一、依赖关系&#xff08;虚线箭头&#xff09;二、泛化关系&#xff1a;继承&#xff08;实线空心箭头&#xff09;三、实现关系&#xff08;虚线空心箭头&#xff09;四、关联关系&#xff08;一对一为实线箭头&#xff0c;一对多为实线&#xff09;五、聚合关系…