热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

jsp学习与提高(三)——JSPCookie处理

1.cookie是什么Cookie是存储在客户机的文本文件,它们保存了大量轨迹信息。在servlet技术基础上,JSP显然能够提供对HTTPcookie

1.COOKIE是什么

COOKIE是存储在客户机的文本文件,它们保存了大量轨迹信息。在servlet技术基础上,JSP显然能够提供对HTTP COOKIE的支持。

通常有三个步骤来识别回头客:

  • 服务器脚本发送一系列COOKIE至浏览器。比如名字,年龄,ID号码等等。
  • 浏览器在本地机中存储这些信息,以备不时之需。
  • 当下一次浏览器发送任何请求至服务器时,它会同时将这些COOKIE信息发送给服务器,然后服务器使用这些信息来识别用户或者干些其它事情

2.使用JSP设置COOKIE

(1)创建一个COOKIE对象: 调用COOKIE的构造函数,使用一个COOKIE名称和值做参数,它们都是字符串。

COOKIE COOKIE = new COOKIE("key","value");

请务必牢记,名称和值中都不能包含空格或者如下的字符:

[ ] ( ) = , " / ? @ : ;

(2) 设置有效期:调用setMaxAge()函数表明COOKIE在多长时间(以秒为单位)内有效。下面的操作将有效期设为了24小时。

COOKIE.setMaxAge(60*60*24);

(3) 将COOKIE发送至HTTP响应头中:调用response.addCOOKIE()函数来向HTTP响应头中添加COOKIE。

response.addCOOKIE(COOKIE);


3.实例演示

main.jsp 文件代码如下所示:

<%&#64; page language&#61;"java" contentType&#61;"text/html; charset&#61;UTF-8" pageEncoding&#61;"UTF-8"%> <%&#64; page import&#61;"java.net.*" %> <% // 编码&#xff0c;解决中文乱码 String str &#61; URLEncoder.encode(request.getParameter("name"),"utf-8"); // 设置 name 和 url COOKIE COOKIE name &#61; new COOKIE("name",          str); COOKIE url &#61; new COOKIE("url",              request.getParameter("url")); // 设置COOKIE过期时间为24小时。 name.setMaxAge(60*60*24); url.setMaxAge(60*60*24); // 在响应头部添加COOKIE response.addCOOKIE( name ); response.addCOOKIE( url ); %>

设置 COOKIE

  • 网站名: <%&#61; request.getParameter("name")%>

  • 网址: <%&#61; request.getParameter("url")%>

以下是一个简单的 HTML 表单通过GET方法将客户端数据提交到 main.jsp 文件中,并设置 COOKIE&#xff1a;



charset&#61;"utf-8"> action&#61;"main.jsp" method&#61;GET> 站点名: type&#61;"text" name&#61;"name"> /> 网址: type&#61;"text" name&#61;"url" /> type&#61;"submit" value&#61;"提交" />


4.使用 JSP 读取 COOKIE

想要读取COOKIE&#xff0c;您就需要调用request.getCOOKIEs()方法来获得一个javax.servlet.http.COOKIE对象的数组&#xff0c;然后遍历这个数组&#xff0c;使用getName()方法和getValue()方法来获取每一个COOKIE的名称和值。

让我们来读取上个例子中的COOKIE, 以下为 COOKIE.jsp 文件代码&#xff1a;

<%&#64; page language&#61;"java" contentType&#61;"text/html; charset&#61;UTF-8" pageEncoding&#61;"UTF-8"%> <%&#64; page import&#61;"java.net.*" %> http-equiv&#61;"Content-Type" content&#61;"text/html; charset&#61;UTF-8"> <% COOKIE COOKIE &#61; null; COOKIE[] COOKIEs &#61; null; // 获取COOKIEs的数据,是一个数组 COOKIEs &#61; request.getCOOKIEs(); if( COOKIEs !&#61; null ){ out.println("

查找 COOKIE 名与值

"); for (int i &#61; 0; i < COOKIEs.length; i&#43;&#43;){ COOKIE &#61; COOKIEs[i]; out.print("参数名 : " &#43; COOKIE.getName()); out.print("
"); out.print("参数值: " &#43; URLDecoder.decode(COOKIE.getValue(), "utf-8") &#43;"
"); out.print("------------------------------------
"); } }else{ out.println("

没有发现 COOKIE

"); } %>


5.使用JSP删除COOKIE

使用JSP删除COOKIE

删除COOKIE非常简单。如果您想要删除一个COOKIE&#xff0c;按照下面给的步骤来做就行了&#xff1a;

  • 获取一个已经存在的COOKIE然后存储在COOKIE对象中。
  • 将COOKIE的有效期设置为0。
  • 将这个COOKIE重新添加进响应头中。

实例演示

下面的程序删除一个名为"name"的COOKIE&#xff0c;当您第二次运行COOKIE.jsp时&#xff0c;name 将会为 null。

<%&#64; page language&#61;"java" contentType&#61;"text/html; charset&#61;UTF-8" pageEncoding&#61;"UTF-8"%> <%&#64; page import&#61;"java.net.*" %> http-equiv&#61;"Content-Type" content&#61;"text/html; charset&#61;UTF-8"> <% COOKIE COOKIE &#61; null; COOKIE[] COOKIEs &#61; null; // 获取当前域名下的COOKIEs&#xff0c;是一个数组 COOKIEs &#61; request.getCOOKIEs(); if( COOKIEs !&#61; null ){      out.println("

查找 COOKIE 名与值

"); for (int i &#61; 0; i < COOKIEs.length; i&#43;&#43;){ COOKIE &#61; COOKIEs[i]; if((COOKIE.getName( )).compareTo("name") &#61;&#61; 0 ){ COOKIE.setMaxAge(0); response.addCOOKIE(COOKIE); out.print("删除 COOKIE: " &#43; COOKIE.getName( ) &#43; "
"); } out.print("参数名 : " &#43; COOKIE.getName()); out.print("
"); out.print("参数值: " &#43; URLDecoder.decode(COOKIE.getValue(), "utf-8") &#43;"
"); out.print("------------------------------------
"); } }else{      out.println("

没有发现 COOKIE

"); } %>

转:https://www.cnblogs.com/tongcc/p/10964892.html



推荐阅读
  • 深入理解Vue.js:从入门到精通
    本文详细介绍了Vue.js的基础知识、安装方法、核心概念及实战案例,帮助开发者全面掌握这一流行的前端框架。 ... [详细]
  • 实用正则表达式有哪些
    小编给大家分享一下实用正则表达式有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下 ... [详细]
  • 本文详细介绍了一种通过MySQL弱口令漏洞在Windows操作系统上获取SYSTEM权限的方法。该方法涉及使用自定义UDF DLL文件来执行任意命令,从而实现对远程服务器的完全控制。 ... [详细]
  • 在尝试使用C# Windows Forms客户端通过SignalR连接到ASP.NET服务器时,遇到了内部服务器错误(500)。本文将详细探讨问题的原因及解决方案。 ... [详细]
  • Nginx 反向代理与负载均衡实验
    本实验旨在通过配置 Nginx 实现反向代理和负载均衡,确保从北京本地代理服务器访问上海的 Web 服务器时,能够依次显示红、黄、绿三种颜色页面以验证负载均衡效果。 ... [详细]
  • 深入解析Java枚举及其高级特性
    本文详细介绍了Java枚举的概念、语法、使用规则和应用场景,并探讨了其在实际编程中的高级应用。所有相关内容已收录于GitHub仓库[JavaLearningmanual](https://github.com/Ziphtracks/JavaLearningmanual),欢迎Star并持续关注。 ... [详细]
  • 本文深入探讨了SQL数据库中常见的面试问题,包括如何获取自增字段的当前值、防止SQL注入的方法、游标的作用与使用、索引的形式及其优缺点,以及事务和存储过程的概念。通过详细的解答和示例,帮助读者更好地理解和应对这些技术问题。 ... [详细]
  • 本文详细介绍了如何使用 PHP 接收并处理微信支付的回调结果,确保支付通知能够被正确接收和响应。 ... [详细]
  • 本文介绍了如何使用JavaScript的Fetch API与Express服务器进行交互,涵盖了GET、POST、PUT和DELETE请求的实现,并展示了如何处理JSON响应。 ... [详细]
  • 本文详细介绍了在使用 SmartUpload 组件进行文件上传时,如何正确配置和查找文件保存路径。通过具体的代码示例和步骤说明,帮助开发者快速解决上传路径配置的问题。 ... [详细]
  • 本文介绍如何从字符串中移除大写、小写、特殊、数字和非数字字符,并提供了多种编程语言的实现示例。 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • 使用PHP实现网站访客计数器的完整指南
    本文详细介绍了如何利用PHP构建一个简易的网站访客统计系统。通过具体的代码示例和详细的解释,帮助开发者理解和实现这一功能,适用于初学者和有一定经验的开发人员。 ... [详细]
  • 深入解析SpringMVC核心组件:DispatcherServlet的工作原理
    本文详细探讨了SpringMVC的核心组件——DispatcherServlet的运作机制,旨在帮助有一定Java和Spring基础的开发人员理解HTTP请求是如何被映射到Controller并执行的。文章将解答以下问题:1. HTTP请求如何映射到Controller;2. Controller是如何被执行的。 ... [详细]
  • 本文介绍 Java 中如何使用 Year 类的 atMonth 方法将年份和月份组合成 YearMonth 对象,并提供代码示例。 ... [详细]
author-avatar
手机用户2502887447
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有