1. 概念和原理
2. 用法举例说明
2.1 cookie应用:面试题: 如何保存用户的登陆状态呢?
2.2 session应用:
2.2.1 session 实现购物车
2.2.2 session 实现防止表单重复提交
2.3 session和cookie的区别
Cookie:
Cookie是存储在客户端的一个文本文件,通常不超过4K;
Cookie有2种声明类型,一种是无存活周期的(存活仅限于浏览器进程),一种是有存活周期的(当存活周期到期,该Cookie失效);
当客户端禁用Cookie或删除Cookie,Cookie失效,通常Cookie被认为是不可靠的。
Session:
Session是分配在服务器端的一块内存区域,当任意一个客户端提出请求时,服务器端会生产一个Session对象,并把Session中的一个属性SessionID发回给客户端,并写入客户端Cookie(该Cookie仅存活于浏览器进程);
Session有2种实现形式,一种是依赖于Cookie,一种是靠URL重写;
服务器端每一个Session对应一个客户端(依据SessionID),在客户端初次访问时创建,Session超时或关闭浏览器进程,Session失效。
注:如客户端禁用Cookie,则Session必须依赖于URL重写才能实现。
在JAVA中Cookie和Session的实现方法(具体参照Servlet Api):
Cookie cookie = new Cookie(String name, String value); //创建Cookie对象
cookie.setMaxAge(int expiry); //设置到期时间,单位:s
response.addCookie(Cookie cookie); //把Cookie写入到客户端。
HttpSession session = request.getSession(true); //判断客户端是否第一次访问(客户端Cookie中是否含有访问当前web程序的SessionId),如果不是,即得到该Session对象,如果是,则创建新的Session对象(参数设为true)。
session.setAttribute(String name, Object value); //设置Session属性,name指定参数名,value为参数值,该值须为一个对象。
String str = (String)session.getAttribute(String name); //通过参数名,得到参数值,并作相应转换。
其他参考:http://blog.sina.com.cn/s/blog_610a21f10100eq9g.html
一:Cookie&&Session
1. WEB应用中的会话是指一个客户端浏览器与WEB服务器之间连续发生的一系列请求和响应过程
2. 在 Servlet 规范中,常用以下两种机制完成会话跟踪:Cookie和Session
3. Cookie的使用实例:
Cookie对象的产生:
Cookie cookie = new Cookie("Cookiename","Cookiue");
cookie.setMaxAge(60);
response.addCookie(cookie);
Cookie对象的获取:
Cookie[] cookies = request.getCookies();
if(cookies != null)
for(Cookie cookie:cookies){
out.print(cookie.getName()+","+cookie.getValue());
}
4. Cookie机制采用的是在客户端保持 HTTP 状态信息的方案;session机制采用的是在服务器端保持 HTTP 状态信息的方案
5. Cookie有效的路径:只对当前目录及其子目录有效,对父目录无效,可以调用Cookie对象的setPath()方法设置Cookie的有效路径例:cookie.setPath(/)
6. page指令中的session=false:当前页面的session对象不可用!但并不意味着当前页面不可以使用HttpSession对象,可以通过其他方法获取Session对象来使用;不是只要访问JSP页面或web应用,Session就会被创建,而是只有当Server端程序调用HttpServletRequest.getSession(true)这样的语句时才会被创建;关闭浏览器只会使存储在客户端浏览器内存中的session cookie失效,不会使服务器端的session对象失效
7. 设置Session的有效时间的两种方法:A:session.setMaxInactiveInterval() (单位为秒)
B: <session-config>
<session-timeout>20</session-timeout>
</session-config>
8. 保存session id的两种方式
A: 保存session id的方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发送给服务器
B: 由于cookie可以被人为的禁用,必须有其它的机制以便在cookie被禁用时仍然能够把session id传递回服务器,经常采用的一种技术叫做URL重写,就是把session id附加在URL路径的后面,附加的方式也有两种,一种是作为URL路径的附加信息,另一种是作为查询字符串附加在URL后面。网络在整个交互过程中始终保持状态,就必须在每个客户端可能请求的路径后面都包含这个session id.
分享到:
相关推荐
- **Cookie**:依赖客户端支持,如果客户端禁用了Cookie,则无法正常工作。 - **Session**:即使客户端禁用了Cookie,也可以通过其他方式(如URL重写)来维持Session的跟踪。 5. **生命周期**: - **Cookie**:...
**一、Cookie** Cookie是由服务器发送到客户端(浏览器)的一小段信息,然后由客户端在后续请求时回送到服务器。它是存储在用户计算机上的文本文件,用于跟踪用户的偏好或记录登录信息。Cookie主要有以下特点: 1....
**Cookie** Cookie是由服务器端发送到客户端(浏览器)的一小段文本信息,用来存储用户状态数据。它在HTTP协议中被使用,因为HTTP协议本身是无状态的,无法记住用户的信息。Cookie主要有以下几个关键点: 1. **设置...
**二、Cookie** Cookie是服务器存储在用户浏览器上的一小段文本信息,用于跟踪和管理用户状态。主要有以下用途: 1. **会话管理**:识别用户会话,如登录状态保持。 2. **存储用户偏好**:记录用户的网站偏好,如...
- **Cookie** 和 **Session** 机制为Web应用程序提供了会话管理的能力,使开发者能够构建更加复杂和个性化的应用。 通过深入理解HTTP协议及其关键组件,开发者可以更好地设计和优化网络应用,提升用户体验。
2. **浏览器存储Cookie:** 浏览器接收到这些Cookie后,会将它们保存在用户的计算机上(通常是`C:\Documents and Settings\[当前用户]\Cookies`目录下)。 3. **浏览器发送Cookie:** 当用户再次访问同一网站时,...
8. **Session and Cookie Management**:用于跟踪用户状态,如登录信息和购物车数据。 9. **Error Handling and Logging**:记录系统异常,帮助调试和优化。 综上所述,这个基于JSP的团购系统涵盖了Java Web开发的...
在IT行业中,网络应用程序的用户认证是至关重要的。本文将深入探讨如何在C#环境中,特别是在Visual Studio 2005环境下,利用Cookie和...压缩包中的CookieAndSession项目正是这样一个实践示例,供学习者参考和实践。
本文将深入探讨如何使用Node.js、Koa框架和Nunjucks模板引擎实现登录验证,并关注"cookieAndSession.zip"中涉及的关键知识点。 首先,我们需要了解Node.js中的HTTP服务器。在"server.js"文件中,开发者通常会创建一...
**Cookie**是一种小型文本文件,网站通过浏览器将其存储在用户的计算机上,用于记录用户的偏好、登录状态等信息。这种机制极大地方便了Web应用程序的功能实现,比如记住用户的登录状态、个性化推荐等内容。然而,...
当用户访问网站并进行交互时,服务器为每个用户创建一个唯一的Session ID,这个ID会被存储在用户的浏览器中,通常是通过Cookie。每当用户请求新的页面时,这个Session ID会随请求一起发送到服务器,服务器根据ID找到...
非常适合于初学者的cookie and session例,已测试通过
要设置session超时,可以通过`session_set_cookie_params()`函数设定cookie的生命周期,这个生命周期决定了session的有效时间。例如: ```php session_set_cookie_params(3600); // session有效期为1小时 session_...
PHP Session基于服务器端存储,每个用户都有一个唯一的Session ID,这个ID通过cookie发送到客户端浏览器。当用户访问新页面时,浏览器将Session ID发送回服务器,服务器根据ID找到对应的数据并恢复用户的会话状态。...
**检查Session和Cookie** 在`Context_BeginRequest`事件处理程序中,我们可以访问`HttpContext.Current.Session`和`HttpContext.Current.Request.Cookies`来获取和检查Session和Cookie。如果Session为空或Cookie...
这个SessionID通常被存储在Cookie中,或者通过URL重写的方式传递给服务器。通过SessionID,服务器能够识别出特定的用户并保持他们的状态信息。 #### Ajax与Session的关系 Ajax(Asynchronous JavaScript and XML)...
每个用户都有一个唯一的会话ID(session ID),这个ID通常通过cookie存储在客户端,服务器端则保存相应的会话数据。 面向对象编程(OOP)引入了类和对象的概念,这使得代码组织更加清晰,复用性更强。在PHP中,我们...
1. **确定Web系统是否使用Cookie** - 查阅设计文档或询问开发人员。 - 直接检查浏览器中存储Cookie的目录: - **Internet Explorer**:`C:\Documents and Settings\user\Local Settings\Temporary Internet Files...
- **AJAX概述**:AJAX(Asynchronous JavaScript and XML)是一种在不刷新整个页面的情况下,与服务器交换数据并更新部分网页的技术。 - **异步交互**:与同步请求不同,AJAX请求可以在等待服务器响应的同时,继续...