`
wenson
  • 浏览: 1052028 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JSP中使用Cookie的总结

阅读更多
今天在使用Cookie时发现,无论怎样添加Cookie,在引用Cookie的时候只得到名称为JSESSIONID,值为一个无序字符串的Cookie,且从客户端获得的Cookie数组长度为1,说明手工添加的Cookie并没有成功保存到客户端。反复尝试了N次,在网上查看了很多这方面的帖子,都没有找到答案。最后终于发现,如果将创建Cookie的语句放在<jsp:include page="includes\head.jsp" flush="true" />(代码的头部有这条语句)的下面,Cookie将添加失败,反之则添加成功。而我们得到的名称为JSESSIONID实际上服务器端保存在客户端的SESSION(会话),它的值就是服务器随机分配的唯一的SESSION-ID,用以保持http连接的有效性。SESSION实际上是以Cookie的形式保存在客户端的,SESSION和Cookie的不同之处在于,SESSION保存在浏览器所用的内存空间中,而Cookie保存在客户端的硬盘上。页面的关闭不会释放SESSION,只有当客户端的浏览器关闭时,SESSION才会被释放。对于Cookie,它的声明周期取决与服务器端对Cookie.setMaxAge()的这一设置,否则将一直保存在硬盘上,直至超出有效期或被人工清除。

另外如果客户端禁用了Cookie,SESSION将随之失效,只能使用URL重用,通过在客户端的请求链接字符串后面加入SESSION-ID才能保持http的有效。

1、Cookie的创建
      调用Cookie对象的构造函数可以创建Cookie。Cookie对象的构造函数有两个字符串参数:Cookie名字和Cookie值。名字和值都不能包含空白字符以及下列字符:
   [ ] ( ) = , " / ? @ : ;

例如

String cookie_name;

String cookie_value;

.....(初始化cookie_name,cookie_value)

Cookie cookie=new Cookie(cookie_name,cookie_value);

cookie.setMaxAge(*) (设置Cookie的有效时间,以秒作为单位)

response.addCookie(cookie) (添加Cookie到客户端)

2、使用Cookie

Cookie[] userCookie=request.getCookies();

for(int index=0;index<userCookies.length;index++)

{

out.print("Cookie_Name="+userCookie[index].getName()+""+"Cookie_Value="+userCookie[index].getValue())

}

分享到:
评论
7 楼 zzz325618 2008-09-04  
没有错呀,值是accountValue,通过参数传过来动态的写的cookie
6 楼 wenson 2008-09-03  
zzz325618  写道

……
/* 密码正确,写入账号Cookie */
Cookie c = new Cookie("loginId", accountValue);
……

我想你需了解,你新建的cookie,cookie名稱是loginId,而cookie值是accountValue。或許你在這點上搞錯了。
5 楼 zzz325618 2008-09-03  
我把端口改为80了还是不行
是不是需要什么配置哦
4 楼 zzz325618 2008-09-03  
web的端口怎么配置为80?我用的tomcat,端口是8080不行吗?
3 楼 zzz325618 2008-09-03  
我的代码是这样的,帮我看看,还是不行
public class CookieCheck {

void cLogin(HttpServletResponse response, HttpServletRequest request,
Integer time, String accountValue, String passValue) {
Cookie x[] = request.getCookies();
for (int i = 0; i < x.length; i++) {
String n = x[i].getName(); // 获取Cookie的名称
if (n.equals(accountValue)) { // 获取名称为accountID的Cookie中保存的账号值

}
}
/* 密码正确,写入账号Cookie */
Cookie c = new Cookie("loginId", accountValue);
c.setMaxAge(time);
response.addCookie(c);
c = new Cookie("password", passValue);
c.setMaxAge(time);
response.addCookie(c);
c=new Cookie("option", "1");
c.setMaxAge(time);
response.addCookie(c);
// response.setContentType("text/html");
try {
response.flushBuffer();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

Cookie s[] = request.getCookies();
for (int i = 0; i < s.length; i++) {
String n = s[i].getName(); // 获取Cookie的名称
if (n.equals(accountValue)) { // 获取名称为accountID的Cookie中保存的账号值

}
}
}

void cLogout(HttpServletResponse response) {
Cookie c = new Cookie("loginId", "0");
c.setMaxAge(0);
response.addCookie(c);
c = new Cookie("password", "0");
c.setMaxAge(0);
response.addCookie(c);
}

void cChangepass(HttpServletResponse response, HttpServletRequest request,
String accountValue, String newpass) {
Cookie x[] = request.getCookies();
for (int i = 0; i < x.length; i++) {
String n = x[i].getName();
if (n.equals("password")) {
Cookie c=new Cookie("password",newpass);
c.setMaxAge(-1);
response.addCookie(c);
break;
}
}
}
}
2 楼 wenson 2008-09-02  
zzz325618 写道

请问一下
无论怎样添加Cookie,在引用Cookie的时候只得到名称为JSESSIONID,值为一个无序字符串的Cookie,且从客户端获得的Cookie数组长度为1
这个问题到底是怎么解决的呀,根本原因是什么?
我是在控制器里面写的,不是在jsp中写的

我的解決辦法是:1、如果在JSP頁面的話,不能把cookie的創建寫在include文件中;2、不管如何,在測試創建以及引用cookie時,Web端口使用80。
以上如果還是解決不了,請把你的相關代碼貼出來,大家一起探討一下!
1 楼 zzz325618 2008-09-02  
请问一下
无论怎样添加Cookie,在引用Cookie的时候只得到名称为JSESSIONID,值为一个无序字符串的Cookie,且从客户端获得的Cookie数组长度为1
这个问题到底是怎么解决的呀,根本原因是什么?
我是在控制器里面写的,不是在jsp中写的

相关推荐

    jsp操作cookie实例

    更新Cookie实际上就是创建一个新的Cookie对象,但使用了相同的名称,然后将新的Cookie添加到响应中。下面是如何更新Cookie的示例: ```jsp String newName = request.getParameter("newName"); String newValue ...

    用jsp简单实现cookie功能

    总结,使用JSP实现Cookie功能可以帮助我们实现诸如用户会话管理、个性化设置等常见的Web应用功能。理解并正确使用Cookie对于开发动态、交互性强的Web应用程序至关重要。在实际开发中,还应注意Cookie的存储限制...

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

    总结来说,Cookie是Web应用程序中实现用户跟踪、状态管理的重要工具。在JSP中,利用Cookie类提供的方法,我们可以轻松创建、修改和读取Cookie,从而提供更加个性化的用户体验和服务。理解并熟练掌握Cookie的使用对于...

    使用jspcookie实现登录密码的记录

    总结来说,`JSP`和`Cookie`的结合使用,能够实现用户登录状态的持久化,提高用户体验。但同时,也需要注意安全性问题,避免敏感信息被滥用。在实际开发中,还应考虑其他因素,如用户隐私政策、跨站脚本攻击(XSS)...

    用jsp实现cookie登录验证

    在本文中,我们将深入探讨如何使用Java Server Pages (JSP) 实现基于Cookie的自动登录功能。这个过程涉及用户身份的持久化存储,以便在用户下次访问网站时能够自动识别和登录。首先,我们需要理解Cookie的基本概念...

    jsp使用cookie存储中文示例分享.docx

    本示例主要探讨了如何在JSP中使用Cookie存储和读取中文数据。 首先,我们来看添加Cookie的步骤。在`addCookie.jsp`中,我们获取请求参数`name`,然后创建一个新的Cookie对象。关键在于,当`name`包含中文字符时,...

    JSP与Servlet 技术总结

    JSP & Servlet 技术总结 JSP技术总结 2 1. JSP页面元素构成 2 2. JSP脚本元素 2 3. 注释 2 4. JSP指令 2 5. JSP动作元素 3 6. JSP内置对象 5 7. JSP内置对象及其作用 5 8. 获取页面参数 5 9. 重定向...

    jsp-cookie-session-crud 使用 JSP 实现cookie session验证及增删改查

    在本文中,我们将深入探讨如何使用JSP(JavaServer Pages)技术实现基于cookie和session的用户验证,并且结合CRUD(Create、Read、Update、Delete)操作进行详细讲解。首先,我们来理解JSP、cookie和session的基本...

    servlet中的Cookie的使用

    本示例探讨了如何在Servlet中使用Cookie技术来实现用户登录信息的持久化存储,以便用户在再次访问网站时无需重复登录。下面将详细解释相关知识点。 1. **Servlet**:Servlet是Java平台上的一个标准接口,它允许Java...

    Jsp内置对象session总结

    当一个客户首次访问服务器上的一个 JSP 页面时,JSP 引擎产生一个 Session 对象,同时分配一个 String 类型的 Id 号,JSP 引擎同时将这个 Id 号发送到客户端,存放在 Cookie 中,这样 Session 对象和客户之间就建立...

    jsp期末概念总结

    【JSP期末概念总结】 JSP(JavaServer Pages)是一种基于Java的技术,它允许开发者在HTML页面中嵌入Java代码,以实现动态网页的创建。JSP文件在服务器上被编译成Servlet类,然后执行生成动态内容。JSP的核心在于将...

    jsp通过cookie实现网页记录

    总结来说,通过结合JSP和Cookie,我们可以实现网页浏览历史的记录和显示,同时利用Ajax确保用户体验的流畅性。在实际应用中,还需要考虑安全性、隐私保护以及性能优化等问题,比如对敏感信息的加密、限制Cookie大小...

    JSP网页编程内容总结PPT

    - `jsp:useBean`:实例化JavaBean并在JSP页面中使用。 - `jsp:setProperty`和`jsp:getProperty`:设置和获取JavaBean的属性。 5. **EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)**...

    java jsp Cookie学习资料

    ### Java JSP Cookie 学习...通过本文的学习,我们了解到 Cookie 是如何在客户端存储信息的,以及如何在 Java JSP 应用中创建和操作 Cookie。掌握这些知识有助于开发者更好地管理用户的会话状态,实现用户认证等功能。

    用JSP写的简单的cookie保存用户信息,可叠加

    总结来说,使用JSP处理cookie涉及以下步骤: 1. 创建`Cookie`对象,指定名称和值。 2. 使用`HttpServletResponse`的`addCookie()`方法将cookie添加到响应中。 3. 在客户端,浏览器接收到响应并存储cookie。 4. 在...

    JSP之客户端的状态信息Cookie的创建和使用:用户登录功能的实现

    总结来说,JSP中的Cookie机制对于实现用户登录功能至关重要,它帮助我们在客户端保持状态,使得用户在浏览网站的多个页面时无需反复登录。正确理解和使用Cookie是每个Web开发者必备的技能,特别是在处理用户认证和...

    jsp与Cookie

    【jsp与Cookie】 在网页开发中,Cookie是一种重要的技术,用于...总结来说,Cookie在JSP中扮演着用户身份识别和数据持久化的角色。通过理解和熟练运用Cookie,开发者可以构建更智能、个性化的Web应用,提升用户体验。

    JSP的Cookie在登录中的使用

    下面我们将详细探讨如何在JSP中使用Cookie来实现这个功能。 1. **功能需求**: 实现登录页面的记忆用户名和密码功能。当用户勾选“记住我”选项后,他们的用户名和密码将被存储在Cookie中,以便下次访问时自动填充...

    jsp页经典面试题java程序员面试经常考到的面试题总结.pdf

    以下是jsp页经典面试题总结,涵盖了jsp的基本概念、jsp与ssi的混合使用、线程安全、html表单处理、静态文件包含、注释、重定向、缓存控制、cookie设置、cookie删除、jsp执行控制、方法定义等多个方面。 1.混合使用...

    JSP改造Cookie案例1

    JSP改造Cookie案例1 本例子展示了如何使用Java Servlet和Cookie来实现记住用户名的功能。下面是该案例的详细说明: 一、 记住用户名的实现 在这个案例中,我们使用了Servlet和Cookie来实现记住用户名的功能。当...

Global site tag (gtag.js) - Google Analytics