`
gaozzsoft
  • 浏览: 424772 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

JAVA中cookie的用法研究

阅读更多

JAVA中cookie用法

 

** 处理cookies

类型 方法名 方法解释
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所遵从的协议版本。

注意:cookies在网站浏览者的计算机中是以"名字/值"(name/value)对存储的,其中name和value在Cookies的构造函数中指定,每个name/value对都以name为标识,也就是说加入cookies的每个name/value对中的name不能相同(即便你value不同),否则后则会把前者覆盖掉。

 

在jsp中怎么使用Cookie?

一般来说有两种办法,在JSP中使用Java的嵌入脚本.
例如:
写入Cookie
<html>
<head>........(中间略)
</head>
<body>
<%
String cookieName="Sender";
Cookie cookie=new Cookie(cookieName, "Test_Content");
cookie.setMaxAge(10);
response.addCookie(cookie);
%>
........(其他内容)
</body>
</html>
这样我们就设置了一个Cookie.
仔细研究一下这段代码:
Cookie cookie=new Cookie(cookieName, "Test_Content");
这一行建立了一个Cookie对象,初始化有两个参数,第一个参数cookieName定义了Cookie的名字,后一个参数,也是一个字符串,定义了Cookie的内容。也就是我们希望网页在用户的机器上标识的文件内容。
接下来一行:cookie.setMaxAge(10),调用了Cookie中的setMaxAge方法,设定Cookie在用户机器硬盘上的存活期为10秒。一个Cookie在用户的硬盘里面存在的时间并不是无限期的,在建立Cookie对象的时候,我们必须制定Cookie的存活期,超过了这个存活期后,Cookie文件就不再起作用,会被用户的浏览器自行删除。如果我们希望用户在下次访问这个页面的时候,Cookie文件仍然有效而且可以被网页读出来的话,我们可以将Cookie的存活期设得稍微长一些。比如cookie.setMaxAge(365*24*60*60)可以让Cookie文件在一年内有效。

读出Cookie
Cookie文件创建好后,自然还需要我们把它读出来,否则我们不是白费力气吗?接下来我们看看如何读出在用户硬盘上的Cookie。
<html>
<head>........(中间略)
</head>
<body>
<table border=1>
<tr><td>Name</td><td>value</td></tr>
<%
Cookie cookies[]=request.getCookies();
Cookie sCookie=null;
String svalue=null;
String sname=null;
for(int i=0;i<cookies.length;i++)
{
sCookie=cookies[i];
svalue=sCookie.getValue();
sname=sCookie.getName();
%>
<tr><td><%=name%></td><td><%=svalue%></td></tr>
<%
}
%>
</table>
........(其他内容)
</body>
</html>
这一小段JSP文件可以读出用户硬盘上的所有有效的Cookie,也就是仍然在存活期内的Cookie文件。并用表格的形式列出每个Cookie的名字和内容。
我们来逐行分析一下这段代码:
Cookie cookies[]=request.getCookies() 我们用request.getCookies()读出用户硬盘上的Cookie,并将所有的Cookie放到一个cookie对象数组里面。
接下来我们用一个循环语句遍历刚才建立的Cookie对象数组,我们用sCookie=cookies[i]取出数组中的一个Cookie对象,然后我们用sCookie.getValue()和sCookie.getName()两个方法来取得这个Cookie的名字和内容。
通过将取出来的Cookie的名字和内容放在字符串变量中,我们就能对其进行各种操作了。在上面的例子里,可通过循环语句的遍历,将所有Cookie放在一张表格中进行显示。

通过上面两个简单的例子,可以看到,用JSP进行Cookie的操作,是非常简单的。不过我们在实际操作中还要注意一些问题:
1. Cookie的兼容性问题
Cookie的格式有2个不同的版本,第一个版本,我们称为Cookie Version 0,是最初由Netscape公司制定的,也被几乎所有的浏览器支持。而较新的版本,Cookie Version 1,则是根据RFC 2109文档制定的。为了确保兼容性,JAVA规定,前面所提到的涉及Cookie的操作都是针对旧版本的Cookie进行的。而新版本的Cookie目前还不被Javax.servlet.http.Cookie包所支持。
2. Cookie的内容
同样的Cookie的内容的字符限制针对不同的Cookie版本也有不同。在Cookie Version 0中,某些特殊的字符,例如:空格,方括号,圆括号,等于号(=),逗号,双引号,斜杠,问号,@符号,冒号,分号都不能作为Cookie的内容。这也就是为什么我们在例子中设定Cookie的内容为“Test_Content”的原因。
虽然在Cookie Version 1规定中放宽了限制,可以使用这些字符,但是考虑到新版本的Cookie规范目前仍然没有为所有的浏览器所支持,因而为保险起见,我们应该在Cookie的内容中尽量避免使用这些字符。

另一种方法是用Javascript脚本来操作Cookie

两种方法操作Cookie的具体方法可以这样查到:
在baidu中搜索关键字:JSP Cookie或是Javascript Cookie即可看到你想要的信息.

 

jsp使用cookie实现记住密码的功能

 

jsp使用cookie实现记住密码的功能,代码怎么写的。这个问题困扰我很长时间了,请高手帮帮我。在登陆界面,如果用户点击记住密码复选框,在下次打开登录界面时候用户名和密码不用输入,已经在文本框中!请高手一定要帮帮我,我真的很急。先谢谢大家了!

 

1.       这个一个页面模拟的cookie,如果你要实现登录,当用户输入用户名密码时,到控制层用
Cookie user = new Cookie("user",name+"-"+passward);
加到cookie中,然后在访问此登录页面时,就先调用
Cookie[] cookies=request.getCookies(); 看cookie中是否有user这个值,如果有就取得用户名、密码。
代码示例:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String name="nihao";
String passward="nihao";
try{
Cookie user = new Cookie("user",name+"-"+passward);
user.setMaxAge(60);
response.addCookie(user);
Cookie[] cookies=request.getCookies();
if(cookies!=null){
for(int i=0;i<cookies.length;i++){
if(cookies[i].getName().equals("user")){
name=cookies[i].getValue().split("-")[0];
passward=cookies[i].getValue().split("-")[1];
request.setAttribute("name",name);
request.setAttribute("pass",passward);
}
}
}
}catch(Exception e){
e.printStackTrace();
}

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<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>
<form action="test10.jsp" method="post">
<input type="text" value="${name}" name=name /></br>
<input type="text" value="${pass}" name=pass />
<input type="submit" value="提交">
</form>
</body>
</html>

 

将用户名和密码保存在COOKIE中(JSP)怎么写源代码

保存到cookie
Cookie cookie=new Cookie("name","value");
Cookie cookiep=new Cookie("mima",pass);
cookie.setMaxAge(10*60); //设置过期之前的最长时间
cookiep.setMaxAge(10*60);
response.addCookie(cookie);
response.addCookie(cookiep);
读取cookie
Cookie Cookies[]=request.getCookies();
if(Cookies==null)
out.print("还没有cookie值");
else
{
for(int i=0;i < Cookies.length;i++)
out.print(Cookies[i].getName()+"="+Cookies[i].getValue()+"<br>");
from:http://blog.sina.com.cn/s/blog_6159d51a0100g253.html

 

(二)part two

防止点击后退键 导致的表单重复提交(jsp实现)
2009-10-13 18:40

 

<!-------------index.jsp------------------>

<%@ page language="java" import="" pageEncoding="GBK"%>
<html>
<head>
</head>

<body>
<%
Cookie cookies = new Cookie("c","123");
session.setAttribute("s","123");
response.addCookie(cookies);
   %>
    <form action="second.jsp" method="post">
    <input type="text" name="name">
    <input type="submit">
    </form>
</body>
</html>

<!--------------------------second.jsp------------------------>

<%@ page language="java" import="" pageEncoding="GBK"%>

<html>
<body>
<%
    String name=""; //定义接收的变量
    Cookie[] cookies = request.getCookies(); //获得cookie
    String comp1=""; //定义变量 被cookie赋值
    String comp2=""; //定义变量 被session赋值
    comp2=session.getAttribute("s").toString(); //得到session的值
    if(cookies!=null){  
        for (int i = 0; i < cookies.length; i++) {
          Cookie c = cookies[i];
          if(c.getName().equalsIgnoreCase("c")){ //得到cookie的值
            comp1=c.getValue();
            }
        }
    }
    if(comp1.equals(comp2)){ //如果两个值一致,那么改变session中的值,并正常打开页面
     session.setAttribute("s","456");
     name=request.getParameter("name");
      }else{//如果两个值不一致,跳转到失败页面
       response.sendRedirect("error.jsp");
      }
%>
<%=name%> <!-- 显示获取的值 -->
</body>
</html>
<!----------------------------------------error.jsp--------------------------------------->

<html>
<head>
</head>
<body bgcolor="gray">
    Wrong!
</body>
</html>

 

分享到:
评论

相关推荐

    关于java应用cookie

    ### 关于Java应用Cookie知识点详解 #### 一、Cookie简介 ...通过以上介绍,我们可以了解到Java中Cookie的基本使用方法以及相关的安全性和注意事项。这些知识点对于开发基于Java的Web应用程序非常重要。

    java 操作cookie

    在 Java 中建立 Cookie 非常简单,主要通过 HttpServletResponse 对象的 addCookie() 方法来实现。下面是一个简单的示例代码: ```java HttpServletResponse response; Cookie cookie = new Cookie("cookiename", ...

    java中cookie的使用教程

    本文将深入讲解Java中Cookie的使用方法,包括创建、设置、读取和删除Cookie,以及其在Web应用程序中的作用。 1. **Cookie的基本概念** - **定义**:Cookie是服务器发送到用户浏览器并存储在本地的一小块数据,当...

    Java 模拟cookie登陆简单操作示例

    Java 模拟Cookie 登陆简单操作示例 在本文中,我们将介绍 Java 模拟 Cookie 登陆的简单操作,结合实例...本示例可以帮助开发者快速了解 Java 模拟 Cookie 登陆的实现原理和实现方法,为实际开发中提供了有价值的参考。

    JAVA中cookie用法

    ### JAVA中Cookie的使用详解 #### 一、Cookie的基本概念 在Web开发中,Cookie是一种在客户端存储数据的...通过上述方法,开发者可以在Java Web应用中有效地管理和使用Cookie,从而提高用户体验并实现更高级的功能。

    java对cookie的操作java对cookie的操作

    在Java中,我们可以使用HttpServletResponse的`addCookie()`方法来设置Cookie。首先创建一个Cookie对象,通过构造函数传入键值对,例如`new Cookie("key", "value")`。然后设置Cookie的存活时间,`setMaxAge()`方法...

    javacookie的使用

    ### Java Cookie 的使用详解 ...通过以上介绍,我们可以看到,在Java Web环境中,Cookie的使用非常灵活且强大,能够帮助开发者轻松实现许多高级功能。当然,正确地使用Cookie还需要考虑到安全性、性能等因素。

    JAVA之cookie与session

    1. **获取 Cookie**:可以使用 `HttpServletRequest` 的 `getCookies()` 方法来获取所有 Cookie 的数组。 2. **遍历并处理 Cookie**:获取到 Cookie 数组后,可以通过遍历来查找特定名称的 Cookie,并处理其值。 ``...

    java中cookie,session,验证码的应用实例!

    Java中,可以通过HttpServletResponse接口的addCookie方法添加Cookie,HttpServletRequest接口的getCookies方法获取Cookie。例如: ```java // 创建Cookie Cookie cookie = new Cookie("username", "John"); cookie...

    java cookie 例子

    本示例将详细介绍如何在Java Servlet中使用Cookie。 首先,我们需要了解Cookie的基本概念。Cookie是由服务器发送到浏览器,并由浏览器存储的一小段文本信息。当浏览器发起新的请求时,它会自动将该域下的所有Cookie...

    aaaaaa.zip_cookie_cookie java_java cookie

    在提供的文件名"JspUtil"中,我们可以推测这可能是一个Java类,包含了对JSP页面进行辅助操作的方法,包括处理Cookie的函数。在实际开发中,经常会编写这样的工具类来封装Cookie的操作,如设置Cookie、获取Cookie、...

    JS cookie Java cookie regex 整理结果

    在JavaScript中,我们可以使用`match()`、`search()`或`test()`方法与正则表达式配合,实现对Cookie字符串的复杂操作。 在实际应用中,JS和Java Cookie结合使用可以实现更高级的功能。例如,服务器通过Java Cookie...

    JAVA100例之实例81Cookie计数器

    - 在Java中,我们使用`HttpServletResponse`接口的`addCookie()`方法来创建和添加Cookie。 - `Cookie`类代表一个Cookie,需要指定名称和值,例如:`Cookie cookie = new Cookie("counter", "1");` 3. **读取...

    Java Servlet及Cookie的使用

    在Servlet的`service()`方法中,我们可以通过`HttpServletRequest`的`getCookies()`方法获取Cookie数组: ```java Cookie[] cookies = request.getCookies(); for (Cookie c : cookies) { if ("username"....

    java访问.net webservice获取与设置cookie

    本篇文章将深入探讨如何使用Java访问.NET Web服务,并在过程中获取和设置Cookie,以便实现更高效、安全的会话管理。首先,让我们理解Web服务的基本概念。 Web服务是一种通过HTTP协议提供功能的方法,使得不同系统间...

    Test_dl.rar_cookie_cookie java_cookies_java cookie

    - 在服务器端,我们可以使用`HttpServletResponse.addCookie(Cookie cookie)`方法将Cookie添加到响应中,这样浏览器在接收到响应后会将其存储。 2. **Cookie的读取**: - 当用户再次请求页面时,浏览器会自动将...

    JAVA操作COOKIE.docx

    在上面的代码中,我们使用 HttpServletRequest 对象的 getCookie() 方法获取当前路径和直接父路径的所有 Cookie 对象,然后遍历该数组,找到名为 "key" 的 Cookie 对象,并将其值修改为 "newValue"。 实现两个网站...

    需要cookie验证的java抓包程序

    2. **Cookie管理**:在Java中,可以使用HttpCookie类来创建和管理cookie。在发送请求前,我们需要将服务器返回的cookie保存,并在后续请求中附加到"Cookie"头中。 3. **HTTP头操作**:通过HttpURLConnection的...

    Cookie简介及JSP处理Cookie的方法.doc

    在JSP(JavaServer Pages)中,我们可以方便地操作Cookie。创建一个新的Cookie对象,你可以使用以下代码: ```java Cookie cookie_name = new Cookie("Parameter", "Value"); ``` 这里的"Parameter"是Cookie的名称...

    java操作cookie

    在Servlet中,我们可以使用HttpServletResponse的addCookie()方法。以下是一个创建Cookie的例子: ```java Cookie cookie = new Cookie("username", "John"); cookie.setMaxAge(60 * 60 * 24 * 7); // 设置Cookie的...

Global site tag (gtag.js) - Google Analytics