在Servlet中显示地设置和读取Cookie
一,什么是Cookie?
Cookie是Web服务器利用set-cookie响应报头发送给客户端的一段消息。客户端在随后的请求中返回给服务器,服务器可以读取(而不可以改变)该消息。
Cookie不会以任何方式得到解释和执行,以名-值对的显示保存消息,服务器通过再次发送修改后的cookie来改变cookie。
浏览器对Cookie大小和数量有限制。
二,Cookie的优点和缺点
在Servlet或JSP中避免使用Cookie存储敏感数据。 用户可能选择关闭Cookie(那就使用URL重写),因此尽可能地不依赖于Cookie。 如果可以在禁用Cookie情况下为用户提供合理的功能,那就这样做。
1,Cookie的优点
在电子商务会话中标识用户,使用servlet提供的专用于会话跟踪的API :javax.servlet.http.Cookie; 记录用户名和密码,相对于安全性要求比较低的站点。
定制站点:
对于简单页面设置,使用Cookie记录用户的喜好,直接将页面的设置存储在Cookie中完成定制。
对于复杂页面设置,使用Cookie将唯一标识发送给用户,由服务器端的数据库存储与每个标识符对应的页面设置。
定向广告:
首次访问不存在相应的Cookie和搜索的东西不和任何广告分类匹配时,网站显示随机广告。 有Cookie情况下,通过记录用户搜索内容,识别用户兴趣,在页面上显示定向的广告。
2,Cookie的缺点
对用户隐私造成极大威胁。比方搜索记录 Cookie数据的共享,将Cookie与图片关联。二个网站可以通过相同的第三方网站载入图片,共享用户的相关数据。
三,Cookie的发送和读取
Servlet使用javax.servlet.http.Cookie类封装Cookie信息。 使用HttpServletResponse来读取Cookie信息。
(1),向客户端发送Cookie
1,创建Cookie对象。
使用Cookie构造函数创建一个Cookie实例。给出字符串:Cookie的名和Cookie的值。名和值不能包含某些特殊字符。
2,获取和设置Cookie在客户端最大保存时间。将会话级别的Cookie存储在客户端中。 getMaxAge和setMaxAge方法。以秒为单位。 设置为负值表示为会话级别cookie,让客户端浏览器在会话结束后删除该Cookie。 设置为0 则指示浏览器删除该cookie;但实际不是这样,所以设置为1更好!
3,将Cookie插入到HTTP响应报头中。
如同前面一样,任何响应报头必须在任何文档发送到客户端之前设置。 使用response.addCookie方法创建新的set-cookie响应报头,不修改之前的请求报头中的set-cookie报头。
(2)从客户端读取Cookie
1,使用request.getCookie,返回Cookie对象数组,没有则返回null。
2,循环Cookie对象数组,调用getName找到需要的cookie,然后调用getValue方法来获取cookie值。
四,Cookie的属性
属性是从服务器发送到浏览器的响应报头的一部分,但它不属于由浏览器发送返回给服务器的请求报头。 所以cookie属性只只用于服务器发送到客户端的cookie;对于来自客户端的cookie并没有这些属性。 也就是说我们只可以在服务器端操作cookie属性,将cookie发送给客户端。而从客户端来的cookie中的属性不可操作。
使用cookie.setXxx和getXxx方法来设置和获取属性,Xxx为属性的名字。
1,setDomain(String domainPattern)和getDomain():设置和读取cookie适用的域。
一般cookie返回给主机名与发送该cookie的主机名完全相同的主机。如果需要返回给其他主机,使用该方法设置指定的域。 域必须以点号开始。对于非国家域,必须包含2个点号。对于国家域必须包含3个点号。
2,setMaxAge(int lifeTime)和getMaxAge():设置和获取cookie的最大保存时间,秒为单位,默认为负值。 设置为负值表示为会话级别cookie,让客户端浏览器在会话结束后删除该Cookie。 注意设置为0 则理论上指示浏览器删除该cookie;但实际不是这样,所以设置为1更好!
3,getName:获取cookie的名称。 cookie创建之后不能改变它的名称。
4,setValue(String cookieValue)和getValue():设置和获取cookie的值 setValue一般用于改变输入cookie的值,并将它们发送出去。
5,setPath(String path)和getPath():设置和获取cookie的路径;如果没有指定一个路径,浏览器只将该cookie返回给发送cookie的页面所在“目录”中或之下的URL。 cookie.setPath("/")指定网站上的所有URL都应该接收该cookie。
6,setSecure(boolean secureFlag)和getSecure():设置或获取布尔值表示cookie是否通过加密来连接。默认false。
五,使用Cookie区别初访者和再访者
检查唯一命名的Cookie是否存在:如果存在则为初访者;如果不存在该Cookie则为再访者,并设置输出Cookie。 不能仅因为Cookie数组为null就认为用户为初访者,数组非空也可能为初访者。 必须遍历Cookie数组,检查比较Cookie名和值和预期是否一致。如果不一致则添加Cookie,显示为初访者准备的信息;如果一致则显示再访者的信息。
六,会话Cookie和持久Cookie
设置和获取cookie的最大保存时间,设置为负值表示为会话级别cookie.设置为正整数表示为持久级别cookie
七,使用Cookie记录用户简单信息
对于简单的用户信息,可以直接将信息记录在Cookie中。 对于复杂的用户信息,在Cookie中存储用户的唯一标识,而把用户信息存储在数据库中。
1,记录用户名,在指定的时间内自动登陆。当用户使用该用户名进行操作的时候,要在服务器端要对返回的cookie做检查。
2,定制站点: 对于简单页面设置,使用Cookie记录用户的喜好,直接将页面的设置存储在Cookie中完成定制。 对于复杂页面设置,使用Cookie将唯一标识发送给用户,由服务器端的数据库存储与每个标识符对应的页面设置。
八,客户端获取Cookie的脚本代码
- function getCookie(parameter)
-
- {
-
- var reg,allCookie,allCookie2,iLen,iStart,iEnd;
-
- allCookie = document.cookie;
-
- reg = new RegExp(parameter);
-
- if((allCookie.search(reg) == -1)||(allCookie.indexOf(parameter+"=")<0))
-
- {
-
- return "";
-
- }
-
- else
-
- {
-
- iLen = parameter.length;
-
- iStart = allCookie.search(reg) + iLen +1;
-
- allCookie2 = allCookie.substr(iStart);
-
- iEnd = iStart + allCookie2.search(/;/i);
-
- if((iStart - 1) == iEnd){
-
- return allCookie.substr(iStart);
-
- }
-
- else{
-
- return allCookie.substr(iStart,iEnd - iStart);
-
- }
-
- }
-
- }
相关推荐
Cookie是Web应用程序中用于管理客户端会话的一种技术。在Java编程中,Cookie是通过HttpServletResponse接口的addCookie方法设置,而通过HttpServletRequest接口的getCookies方法读取。下面将详细讲解Cookie的工作...
本文将深入探讨Cookie和Session的工作原理、应用场景以及如何在Java Web项目中进行有效利用。 **Cookie** Cookie是由服务器端发送到客户端(浏览器)的一小段文本信息,用于在客户端和服务器之间传递状态信息。它...
### 关于Java应用Cookie知识点详解 #### 一、Cookie简介 ...通过以上介绍,我们可以了解到Java中Cookie的基本使用方法以及相关的安全性和注意事项。这些知识点对于开发基于Java的Web应用程序非常重要。
总的来说,ASP.NET的Session和Cookie是构建动态Web应用的重要工具。正确理解和使用它们能够提升用户体验,同时要考虑到性能和安全性的平衡。在设计Web应用时,根据需求选择合适的状态管理策略是至关重要的。
Cookie技术应用实例,可以实现资源共享,很好用的。
2. **Cookie应用于购物车** - 购物车通常需要记录用户添加的商品信息,包括商品ID、数量等。由于HTTP协议无状态,服务器无法直接识别多次请求来自同一用户,这时Cookie就派上用场了。 - 当用户将商品添加到购物车...
### Cookie介绍及应用 #### 一、Cookie的基本概念与作用 **Cookie** 是一种轻量级的数据存储技术,主要用于在用户的计算机上存储少量信息。它由服务器生成,并发送到用户的浏览器,然后浏览器会将该信息存储在本地...
通过以上介绍,你应该对PHP中Cookie的配置和应用有了深入了解。在实际开发中,合理利用Cookie能提高用户体验,但同时也需注意安全性和性能优化。在附带的`demo`文件中,可能包含了一些示例代码,你可以参考学习,...
使用Cookie做的简单登录页面,实现功能登录功能,登录成功后记录Cookie信息,再次进入不用登录,并记录登录次数。登录错误并显示错误次数,大于3次后无权登录。 ps:用户名密码为accp 没有连数据库所以帐号密码是...
3. Domain:设置cookie应用于哪个域,如`cookie.Domain = ".example.com";` 4. Path:限制cookie在特定的路径下有效,如`cookie.Path = "/admin/";` 5. Expires:设置cookie的过期时间。 6. Secure:如果设置为true...
使用这样的工具类,开发者可以更方便地在应用中处理Cookie,提高代码的可读性和复用性。 总结,Cookie是Web开发中的基础组件,用于维护客户端和服务器的状态。理解Cookie的读写和子Cookie的概念,以及如何利用工具...
假设我们有两个应用程序,app1.example.com 和 app2.example.com,若要在它们之间共享Cookie,我们需要将Cookie的`domain`设置为更高层级的域,如`.example.com`。这样,两个子域下的应用都能访问这个Cookie。不过,...
#### 一、背景介绍 在网络应用中,为了提供便捷的用户体验,许多网站都提供了“记住我”的功能。这一功能可以让用户在下次访问时无需重新输入用户名和密码即可直接登录。实现这一功能的一种常见方法是通过在用户的...
在 `onResume()` 和 `onPause()` 方法中,分别调用 `sync()` 和 `stopSync()` 方法以确保在应用前台显示时同步 Cookie,并在后台运行时停止同步以节省资源。 ```java @Override protected void onResume() { super...
这个文档“Cookie的应用.doc”显然详细探讨了如何在实际操作中创建和管理Cookie。下面,我们将深入探讨Cookie的基本概念、创建过程以及其在Web应用程序中的应用。 **Cookie基本概念** Cookie是由服务器端发送到用户...
通过合理运用.NET Framework提供的工具和方法,可以有效提升应用程序的安全性和用户体验。 最后,需要注意的是,虽然加密可以增加安全性,但并不意味着可以完全防止所有的安全威胁。因此,结合其他安全措施,如...
在IT行业中,Cookie是Web...通过查看和运行这些代码,你可以更深入地理解如何在Java Web应用中处理Cookie。确保在实际应用中遵循HTTP协议和相关的安全最佳实践,以保护用户数据并防止跨站脚本攻击(XSS)等安全问题。
- 遍历这些Cookie对象,使用`getName()`和`getValue()`方法来获取Cookie的名称和值。 - 示例代码: ```java String cookieName = "userID"; Cookie[] cookies = request.getCookies(); if (cookies != null) {...
综上所述,Cookie是现代Web应用不可或缺的一部分,它对于实现用户个性化体验、会话管理和身份验证等功能至关重要。理解Cookie的工作机制和如何在PHP中使用它们,对于开发高效且安全的Web应用程序至关重要。
在这个实例中,我们结合了JavaScript和Cookie技术来实现这一功能。 首先,HTML部分定义了一个输入框(`<input id="txt" type="text">`)以及相关的CSS样式来创建下拉菜单的效果。CSS通过`.Menu`和`.Menu2`类设置了...