JSP状态管理之cookie

【PCIe DL_Feature详解】    Data Link Control and Management State Machine在PCIe Gen4引入了DL_Feature这个状态,该状态主要用来协商PCIe link 两端是否支持新的DL Feature,目前为止DL Feature只引入了Scaled Flow Control 来提高Gen4及以上的效率。   DL_Feature 这个状态是可选的,当 Data Link Feature Extended Capability中Data Link Feature Exchang 阅读详情

一、http协议的无状态性
无状态是指,当浏览器发送请求给服务器时,服务器响应客户端请求。但是当同一个人浏览器再次发送请求给服务器的时候,服务器并不知道他就是刚才那个浏览器。简单地说,就是服务器不会去记你,所以就是无状态协议。

二、保存用户状态的两大机制
session和cookie

三、什么是cookie?
中文名“小甜品”,是web服务器保存在客户端的一系列文本信息。
典型应用一:判定注册用户是否已经登录网站。
典型应用二:“购物车”的处理。

四、cookie的作用:
(1)对特定对象的追踪。
(2)保存用户网页浏览记录与习惯。
(3)简化登录。
安全风险:容易泄露用户信息。

五、JSP中创建和使用cookie
(1)创建cookie对象

Cookie newCookie=new Cookie(String key,Object value);

(2)写入cookie对象

response.addCookie(newCookie);

(3)读取cookie对象

Cookie[] cookies=request.getCookies();

常用方法:

void setMaxAge(int expiry) 设置cookie的有效期,以秒为单位
void setValue(String value) 在cookie创建后,对cookie进行赋值
String getName() 获取cookie的名称
String getValue() 获取cookie的值
int getMaxAge() 获取cookie的有效时间,以秒为单位

六、Session与Cookie对比
这里写图片描述

练习代码:

login.jsp:
<%@page import="java.net.URLDecoder"%>
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>用户登录</title>
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
  </head>

  <body>
    <h1>用户登录</h1>
    <%
        request.setCharacterEncoding("utf-8");
        String username = "";
        String password = "";
        Cookie[] cookies = request.getCookies();
        if(cookies!=null && cookies.length>0)
        {
            for(Cookie c:cookies)
            {
                if(c.getName().equals("username"))
                {
                    username = URLDecoder.decode(c.getValue(), "utf-8");
                }
                else if(c.getName().equals("password"))
                {
                    password = c.getValue();
                }
            }
        }
    %>
    <form action="dologin.jsp" name="loginForm" method="post">
        <table>
            <tr>
                <td>用户名:</td>
                <td><input type="text" name="username" value="<%=username %>"></td>
            </tr>
            <tr>
                <td>密码:</td>
                <td><input type="password" name="password" value="<%=password %>"></td>
            </tr>
            <tr>
                <td colspan="2"><input type="checkbox" name="isUseCookie" checked="checked">十天内记住我的登录状态</td>
            </tr>
            <tr>
                <td colspan="2" align="center"><input type="submit" value="提交"><input type="reset" value="取消"></td>
            </tr>
        </table>
    </form>
  </body>
</html>
dologin.jsp:
<%@page import="java.net.URLEncoder"%>
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>登录成功</title>

    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->

  </head>

  <body>
    <h1>登录成功</h1>
    <br><br><br><br><br>
    <%
        request.setCharacterEncoding("utf-8");
        //首先判断用户是否选择了记住登录状态
        String[] isUseCookie = request.getParameterValues("isUseCookie");
        if(isUseCookie!=null && isUseCookie.length>0)
        {
            //使用URLEncoder解决在cookie中保存中文字符串问题
            String username = URLEncoder.encode(request.getParameter("username"), "utf-8");
            String password = request.getParameter("password");
            Cookie usernameCookie = new Cookie("username",username);
            Cookie passwordCookie = new Cookie("password",password);
            usernameCookie.setMaxAge(864000);//设置最大生存期限为十天
            passwordCookie.setMaxAge(864000);
            response.addCookie(usernameCookie);
            response.addCookie(passwordCookie);
        }
        else
        {
            Cookie[] cookies = request.getCookies();
            if(cookies!=null && cookies.length>0)
            {
                for(Cookie c:cookies)
                {
                    if(c.getName().equals("username") || c.getName().equals("password"))
                    {
                        c.setMaxAge(0);
                        response.addCookie(c);
                    }
                }
            }

        }
    %>
    <a href="user.jsp" target="_blank">查看用户信息</a>
  </body>
</html>
user.jsp:
<%@page import="java.net.URLDecoder"%>
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">

    <title>用户信息</title>

    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">    
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->

  </head>

  <body>
    <h1>用户信息</h1>
    <hr>
    <%
        request.setCharacterEncoding("utf-8");
        String username = "";
        String password = "";
        Cookie[] cookies = request.getCookies();
        if(cookies!=null && cookies.length>0)
        {
            for(Cookie c:cookies)
            {
                if(c.getName().equals("username"))
                {
                    username = URLDecoder.decode(c.getValue(), "utf-8");
                }
                else if(c.getName().equals("password"))
                {
                    password = c.getValue();
                }
            }
        }
    %>
    <br>
        用户名:<%=username %><br>
        密码:<%=password %>
  </body>
</html>
非华为电脑也能用上鸿蒙生态?手把手教你给Win10/Win11装上最新华为电脑管家(附移动应用引擎开启方法) 本文详细介绍了如何在非华为品牌的Windows 10/11电脑上安装华为电脑管家并启用移动应用引擎,实现鸿蒙生态的无缝协同体验。从BIOS设置到安装步骤,再到性能优化和常见问题解决,手把手教你解锁跨设备高效工作流。 阅读详情

相关推荐

企业微信群机器人Webhook配置全攻略:从创建到发送消息的完整流程

本文详细解析了企业微信群机器人的Webhook配置全流程,从创建机器人、获取关键Webhook地址,到使用代码发送文本、Markdown等多种消息类型。内容涵盖安全加固、错误处理及与CI/CD等系统集成的实战指南,帮助企业快速构建高效、稳定的内部通知系统。

ik678901的博客 1782

jsp是如何实现Cookie的

以下是jsp实现cookie的一个简单的例子 Cookie是存储在客户机的文本文件,它们保存了大量轨迹信息。在servlet技术基础上,JSP显然能够提供对HTTP cookie的支持。通常有三个步骤来识别回头客: 1. 服务器脚本发送一系列cookie至浏览器。比如名字,年龄,ID号码等等。 2. 浏览器在本地机中存储这些信息,以备不时之需。 3 . 当下一次浏览器发送任何请求至服务器时,它

程序人生 2306

Mac上MySQL出现secure-file-priv为null

在使用MySQL导入导出文件时出现了错误,原因是没有配置secure-file-priv。 我的MySQL版本是8.0.13,使用如下命令查看secure-file-priv。 结果发现secure-file-priv为空,此时需要为它配置一个文件夹。 解决方案: 1)到MySQL的安装目录中去,Mac中是的是 /usr/local/mysql/support-files,该目录下有一...

zhangvalue的博客 5883

Cookie&jsp入门

会话技术 1,会话:一次会话中包含多次请求和响应 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止。 2,功能:在一次会话范围内多次请求间共享数据。 3,方式:1,客户端会话技术:Cookie 2,服务器端会话技术:Session Cookie 客户端会话技术,将数据保存在客户端中 使用步骤: 创建Cookie对象,绑定数据:new Cookie(String name,String value) 发送Cookie对象:response.addCookie(Cookie co

L的博客 527

Apollo&Carla联合仿真环境搭建与实战调试

本文详细介绍了Apollo与Carla联合仿真环境的搭建与实战调试流程,涵盖硬件配置、软件依赖安装、Apollo环境配置、Carla仿真器安装、桥接服务设置以及常见问题解决方案。通过逐步指导,帮助开发者高效实现自动驾驶仿真测试,提升开发效率。

ee345的博客 200

STM32与小米CyberGear微电机的CAN通信协议深度解析

本文深度解析STM32与小米CyberGear微电机的CAN通信协议,涵盖硬件连接、CAN总线配置、通信协议解析及多电机协同控制。重点介绍了基于STM32的电机控制实践,包括运动模式、速度与位置模式设置,以及数据反馈与故障诊断,为机器人及自动化设备开发提供实用指南。

www00的博客 359

JSP基础:(3)cookie对象与session对象

目录 1 Cookie对象 1.1 定义 1.2 操作cookie 1.2.1 开启浏览器cookie 1.2.2 读写Cookie对象 1.2.3 Cookie对象的方法 1.2.4 cookie操作 1.2.5 Cookie弊端 1.3 关闭缓存 2 session对象 2.1 定义 2.2 两种方式获取sessionID 2.3 会话结束的四种方法 2.4 session实操 1 Cookie对象 1.1 定义 Cookie 是一种保持 Web应用程序连续性的一.

上善若泪 2332

LM1875官方电路图元件作用解释说明以及电路调校

R1是为C1提供充放电回路用的电阻,这是老外工作严谨的地方,其实接好电位器之后直流通路就已经存在了,这个加上只能防止最恶劣情况时也能把C1的电能放掉,尽管只有一点点 C1是输入电容,主要作用是隔离前后级的直流信号,但是这个电容对音质的影响很大,可以换用不同的品牌和容量来部分修改音质和音色 R2提供LM1875正输入端的直流电平控制点,接地就表示在理想情况下Lm1875的输出直流电平是0V;还有一个作用就是确定放大器的交流输入阻抗为电阻值。 R3、R4是反馈电阻,这个电路的放大倍数为R4/R3+1=21倍。.

m0_50862404的博客 1万+

JSP Cookies 处理

Cookies是存储在客户机的文本文件,它们保存了大量轨迹信息。在servlet技术基础上,JSP显然能够提供对HTTP cookies的支持。 通常有三个步骤来识别回头客: 服务器脚本发送一系列cookies至浏览器。比如名字,年龄,ID号码等等。浏览器在本地机中存储这些信息,以备不时之需。当下一次浏览器发送任何请求至服务器时,它会同时将这些cookies信息发送给服务器,然后服务器

fishmc的专栏 537

机器人学习-matlab四足机器人控制仿真

《机器人学,机器视觉与控制》学习笔记 使用工具箱版本9.10 题目与解决思路: 【1】. 通过减少复位期间的抬腿高度来缩短复位的轨迹 Z轴向下,为了减小复位器件的抬腿高度,应当缩小△Z,故可以将示例程序中zu值调大。 【2】. 增加腿的步幅 腿的步幅可由改变x方向上腿前进和后退运动的极限来达到,令xf = 7; xb = -xf;即可。 ...

weixin_44609769的博客 5538

YOLOv8/v9轻量化优化:剪枝30%+蒸馏提精,模型体积缩至4MB还能跑Jetson

剪枝:用敏感度分析找到“可牺牲的30%”,不碰核心特征;蒸馏:借大模型的“经验”补回精度,甚至反超原始小模型;量化:针对边缘设备特性优化量化策略,把体积和延迟压到最低。如果你的项目卡在边缘部署(速度慢/体积大),按“剪枝→蒸馏→量化”三步走,90%能在Jetson上跑通30FPS+的实时检测。需要轻量化模型文件(v8s/v9s剪枝蒸馏后权重)、剪枝工具和Jetson部署脚本的,评论区扣“轻量化”,直接发你可运行版本~

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 669

【JSP】Cookie知识总结

Cookie 1、Cookie机制是采用客户端保持Http状态信息的方案。 2、Cookie是在浏览器访问web服务器的某个资源的时候,由web服务器在http响应消息头中附带给浏览器的一个小文本文件。 3、一旦web服务器保存了某个Cookie,那么它在以后每次访问该web服务器的时候都会在http请求头中将这个cookie回传给web服务器。 4、底层实现原理:web服务器通过http...

one or only的博客 529

LeRobot 机器人学习(Robot Learning)教程(二)经典机器人学

本文探讨了机器人学中基于学习的方法与传统动力学方法的对比与发展趋势。文章指出,传统方法依赖精确的动力学模型和大量人工调参,面临跨任务泛化能力弱、工程复杂度高、物理建模局限性等问题。随着机器学习技术的进步和机器人数据集的丰富,基于学习的方法展现出三大优势:(1)能够实现跨任务与实体的泛化;(2)降低对人类专业知识的依赖;(3)利用历史数据优化性能。文中以平面机械臂为例,分析了传统逆运动学方法的计算复杂性和环境适应性挑战,并指出基于学习的方案在处理高维感知输入、复杂接触动力学等方面具有明显优势。文章认为,结合物

2506_90492529的博客 1066

学习笔记之jsp状态管理之cookie

jsp状态管理 http协议的无状态性 无状态是指 当浏览器放松请求给服务器的时候,服务器响应客户端请求。但是当同一个浏览器再次发送请求给服务器的时候,服务器并不知道它就是刚才那个浏览器。 简单地说,就是服务器不会去记得你,所以就是无状态协议 保存用户的状态的两大机制: Session Cookie(客户端的技术) 什么是Cookie Web服务器保存在客户端的一系列文本信息 1.判断是否已经登录网站(保存了登录信息) 2.购物车的处理 Cookie 对特定对象的追踪 保存用户网页浏览记录与习惯 简化登录

qq_39814938的博客 181

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

JSP Cookie状态管理

JSP中创建与使用Cookie   创建Cookie对象     Cookie newCookie = new Cookie(String key, Object value);   写入Cookie对象     response.addCookie(newCookie);   读取Cookie对象     Cookie[] cookies = request.getCook...

weixin_30919235的博客 105

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

观看慕课老师milanlover视频JSP状态管理+cookie

创建cookie对象调用它的构造方法,构造方法接收两个参数,是一种键值对描述:键:cookie对象的字符串描述;值:要保存的cookie对象。 Value:字符串 The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path login....

蔡姬的博客 553

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Jsp状态管理-cookie

http协议的无状态性   浏览器再次发生请求,服务器不能识别是原来那个浏览器,服务器不会去记,就是无状态协议(这还是个协议?意思是记得的话反倒不好?所以要有这个协议?可为什么又需要session、cookie让服务器记得?) Cookie 保存用户状态的两个机制:   session   cookie session是会话,客户端的请求携带一个id,服务器识别id确定用户身...

balei2634的博客 109

Jsp状态管理-Cookie

1、http协议无状态性 无状态:当浏览器发送请求给服务器的时候,服务器响应客户端请求 但是当同一个浏览器再次发送请求给服务器时,服务器并不知道他就是刚才那个浏览器。 简单来说,服务器不会记住你,所以就是无状态协议。 2、保存用户状态的两大机制 Session Cookie 3、Cookie简介 Cookie:是Web服务器保存在客户端的一系列文本信息。 典型应用一:判断注册用户是否已经...

weixin_45892170的博客 160

JSP状态管理-JSP页面中创建与使用Cookie

JSP页面中创建与使用Cookie 创建Cookie对象 Cookie newCookie = new Cookie(String key,Object value); 写入Cookie对象 response.addCookie(newCookie) 读取Cookie对象 Coolie[] cookies = request.getCookies() 常用方法 方法名称 说明 ...

胡二的博客 227

JSP状态管理-Cookie在登陆中的应用

JSP中创建与使用Cookie 实现记忆用户名和密码功能

胡二的博客 168

JSP状态管理 及 Cookie实例

HTTP协议的无状态性 无状态是指,当浏览器发送请求给服务器的时候,服务器响应客户端的请求。 但是当同一个浏览器再次发送请求给了服务器的时候,服务器并不知道它就是刚才那个浏览器。 简单地说,就是服务器不回去记得你,所以就是无状态协议。   保存用户状态的两大机制:Session和Cookie。   什么是Cookie? Cookie:中文名称“小甜饼”,是Web服务器保存在客户端的...

weixin_34183910的博客 102

JSP_6_JSP状态管理(cookie)

---6-1 HTTP协议的无状态性-------------------------------------------------------------------------- 依靠Cookie和Session保存状态 ---6-2 Cookie概述----------------------------------------------------------------...

dflq17793的博客 100

JSP中使用cookie完成状态管理

<br />cookie也算是http消息报头的一部分,它的作用有以下方面:<br /><br /> 一、记录访客的某些信息。例如可以利用cookie记录用户光临的网页次数,或者访客曾经输入过的信息。某些网站可以自动记录用户上次登录的用户名,用的就是cookie。<br /><br /> 二、页面之间传递变量。浏览器并不会保存当前页面上的任何变量的信息,当页面被关闭时,页面上所有变量信息将随之消失。<br /><br /> 在jsp中创建简单的cookie:<br /><br /> String c

allen2010lp的专栏 390

Jsp状态管理(Cookie和Session的对比)

HTTP协议的无状态性: 无状态性是指,当浏览器发送请求给服务器的时候,服务器响应客户端请求,但是当同一个浏览器再次发送请求给服务器的时候,服务器并不知道他就是刚才的那个浏览器。 简单的说,就是服务器不会去记得你,所以就是无状态协议 保存用户状态的两大机制:Cookie和Session Cookie:中文名称为“小甜点”,是web服务器保存在客户端的一系列文本信息。 作用: 1

u014038534的专栏 506

jsp状态管理(Cookie Session)学习笔记整理

1、状态管理     将浏览器与web服务器之间多次交互(一次请求,一次响应)当做一个整体看待,并且将多次交互涉及的数据即状态保存下来。 2、状态管理的两种常见模式     (1)客户端状态管理技术:将状态保存在客户端。--------cookie技术     (2)服务器状态管理技术:将状态保存在服务器。--------session技术  3、cookie     (1)什么是co

gxc312648465的博客 652

jsp之cookie的基本操作&&实现用户登录cookie记录用户信息

jsp状态管理:因为http的无状态性,所以可以用session或cookie技术保存用户信息,而cookie可以记录信息可以判定注册用户是否已经登录网站,购物车的应用,浏览记录,但是有安全风险 创建cookie Cookie cookie=new Cookie(String key,Object value); 写入cookie response.addCookie(cookie); 读取cookie对象 Cookie[] cookies=request.getCookies(); 设置cookie

唐傘皮 1491
上一篇: Javabean
下一篇: JSP指令与动作元素
Ce1estial
博客等级 码龄11年 6粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值