JSP中的Cookie

如何创建Cookie

先引包:

import="javax.servlet.http.Cookie"

JSP是使用如下的语法格式来创建cookie的:

Cookie cookie_name =new Cookie("Parameter","Value");

例如: Cookie username_Cookie =new Cookie("username","SMN");

cookie.setMaxAge(10); //存活期为10秒

response.addCookie(username_Cookie);

 解释:JSP是调用Cookie对象相应的构造函数Cookie(name,value)用合适的名字和值来创建Cookie,然后Cookie可以通过HttpServletResponse的addCookie方法加入到Set-Cookie应答头,本例中Cookie对象有两个字符串参数:username,SMN。注意,名字和值都不能包含空白字符以及下列字符:@ : ;? , " / [ ] ( ) =

处理Cookie的属性

类型

方法名

方法解释

String

getComment()

返回cookie中注释,如果没有注释的话将返回空值.

String

getDomain()

返回cookie中Cookie适用的域名. 使用getDomain() 方法可以指示浏览器把Cookie返回给同 一域内的其他服务器,而通常Cookie只返回给与发送它的服务器名字完全相同的服务器。注意域名必须以点开始(例如.yesky.com)

int

getMaxAge()

返回Cookie过期之前的最大时间,以秒计算。

String

getName()

返回Cookie的名字。名字和值是我们始终关心的两个部分,笔者会在后面详细介绍 getName/setName。

String

getPath()

返回Cookie适用的路径。如果不指定路径,Cookie将返回给当前页面所在目录及其子目录下 的所有页面。

boolean

getSecure()

如果浏览器通过安全协议发送cookies将返回true值,如果浏览器使用标准协议则返回false值。

String

getValue()

返回Cookie的值。笔者也将在后面详细介绍getValue/setValue。

int

getVersion()

返回Cookie所遵从的协议版本。

void

setComment(String purpose)

设置cookie中注释。

void

setDomain(String pattern)

设置cookie中Cookie适用的域名

void

setMaxAge(int expiry)

以秒计算,设置Cookie过期时间。

void

setPath(String uri)

指定Cookie适用的路径。

void

setSecure(boolean flag)

指出浏览器使用的安全协议,例如HTTPS或SSL。

void

setValue(String newValue)

cookie创建后设置一个新的值。

void

setVersion(int v)

设置Cookie所遵从的协议版本。

读取客户端的Cookie

JSP将调用request.getCookies()从客户端读入Cookie,getCookies()方法返回一个HTTP请求头中的内容对应的Cookie对象数组。你只需要用循环访问该数组的各个元素,调用getName方法检查各个Cookie的名字,直至找到目标Cookie,然后对该Cookie调用getValue方法取得与指定名字关联的值。

例如:

<%
   //从提交的HTML表单中获取,用户名
   String userName=request.getParameter("username");

   //以"username", userName 值/对 创建一个Cookie
   Cookie theUsername=new Cookie("username",userName);

   response.addCookie(theUsername);
  %>
  ..............
  <%
   Cookie myCookie[]=request.getCookies();//创建一个Cookie对象数组

   for(int n=0;n=cookie.length-1;i++){//设立一个循环,来访问Cookie对象数组的每一个元素

   Cookie newCookie= myCookie[n];

   if(newCookie.getName().equals("username")); //判断元素的值是否为username中的值
    {%>
     你好,<%=newCookie.getValue()%>!//如果找到后,向他问好
    <%}
  }
  %>

设置Cookie的存在时间,及删除Cookie

使用setMaxAge(int expiry)方法来设置Cookie的存在时间,参数expiry应是一个整数。正值表示cookie将在这么多秒以后失效。注意这个值是cookie将要存在的最大时间,而不是cookie现在的存在时间。负值表示当浏览器关闭时,Cookie将会被删除。零值则是要删除该Cookie。

<%    Cookie deleteNewCookie=new Cookie("newcookie",null); //newcookie是要删除的cookie的名字    deleteNewCookie.setMaxAge(0); //删除该Cookie    response.addCookie(deleteNewCookie); %>

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Eclipse闪退解决方案

    1. 找到Eclipse目录下的eclipse.exe,右键点击-》发送到桌面快捷方式,然后右键点击快捷方式,选择属性,修改“目标”(或target),其中红色...

    HUC思梦
  • Redis 的并发竞争问题是什么?如何解决这个问题?了解 redis 事务的 CAS 方案吗?

    这个也是线上非常常见的一个问题,就是多客户端同时并发写一个 key,可能本来应该先到的数据后到了,导致数据版本错了;或者是多客户端同时获取一个 key,修改值之...

    HUC思梦
  • 发送各种数据到客户端的工具类

    HUC思梦
  • Cookie与Session基础知识点

    会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。 Cookie通过在客户端记录信...

    JavaEdge
  • 【Web技术】238-全面了解Cookie

    浏览器和服务器之间的通信少不了HTTP协议,但是因为HTTP协议是无状态的,所以服务器并不知道上一次浏览器做了什么样的操作,这样严重阻碍了交互式Web应用程序的...

    pingan8787
  • Android 中cookie的处理详解

    Cookie,有时也用其复数形式Cookies,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。

    砸漏
  • 可爱可恨的 Cookie

    Cookie 曾一度用于客户端数据的存储,由于历史原因这是那个年代唯一可以使用的存储手段,通常情况下 Cookie 都是由服务端向用户客户端发送的一小块数据,它...

    icepy
  • 初学Java Web(5)——cookie-session学习

    HTTP 协议 Web 浏览器与 Web 服务器之间的一问一答的交互过程必须遵守一定的规则,这样的规则就是 HTTP 协议。 HTTP 是 hypertext ...

    我没有三颗心脏
  • Cookie

    Cookie 是服务器保存在浏览器的一小段文本信息。浏览器每次向服务器发出请求,就会自动附上这段信息。

    代码之风
  • 深入解析Cookie技术

    0×00 引言 在Web技术的发展史上,Cookie技术的出现是一次重大的 变革。但是, Cookie技术又是一项非常有争议的技术,从它诞生之日起就成了广大网络...

    FB客服

扫码关注云+社区

领取腾讯云代金券