标签:ram 管理 窗口 main 重要 lis class 统计 new
一:Session
1.Session作用于服务器端,在客户端第一次请求服务器的时候创建,并存放于内存,每个用户都有一个Session。(需要注意只有访问JSP、Servlet等程序时才会创建Session,只访问HTML、IMAGE等静态资源并不会创建Session。如果尚未生成Session,也可以使用request.getSession(true)强制生成Session)
2.Session生成后,用户每访问服务器一次,无论是否读写Session,服务器都认为该用户的Session“活跃(active)”了一次。为防止内存溢出,服务器会把长时间内没有活跃即超时的Session从内存删除。
3.Session的尽量只存放一些重要的数据,减小内存占用,防止并发访问内存溢出。
4.Session统计同时在线人数,通过创建实现HttpSessionListener接口的监听器,每次创建Session次数+1,每次销毁-1;
5.服务器会为每个Session创建一个唯一的ID,这个SessionId在客户端与服务端会话是十分重要;
二:Cookie
1.Cookie属于浏览器管理,具有不可跨域名性。由于HTTP协议是无状态且是不安全的,所以Cookie的值常加密后保存。
2.一个用户的所有请求操作都应该属于同一个会话,不同的用户拥有不同的会话,而http请求是无状态的,那服务器怎么将这么多请求划分到具体用户的会话中呢?服务器在创建Session后会创建一个用来确认身份JSESSIONID、值为该SessionId的Cookie,并发送给客户端浏览器,并保存在浏览器。
3.Cookie的基本用法:
Cookie cookie = new Cookie("username","helloweenvsfei"); // 新建Cookie cookie.setMaxAge(Integer.MAX_VALUE); // 设置生命周期为MAX_VALUE cookie.setPath("/keepft/"); // 设置路径 cookie.setDomain(".keepft.com"); // 设置域名 response.addCookie(cookie); // 输出到客户端
cookie.setMaxAge(maxAge):maxAge(秒)为正数时表示该Cookie会在maxAge秒之后自动失效,浏览器会将该Cookie写到本地文件中,即使浏览器关闭,在maxAge秒之前再打开浏览器该Cookie仍可用
maxAge为-1时表示该Cookie仅在本浏览器窗口以及本窗口打开的子窗口内有效,关闭窗口后该Cookie即失效。(例如窗口打开的<iframe></iframe>子窗口)
maxAge为0时表示删除该Cookie(Cookie用此方法删除Cookie,需要new一个Name一样新Cookie,并将Value设置为“”;修改一个cookie类似)
cookie.setPath(path):path设置为“/”时允许所有路径使用Cookie。path属性需要使用符号“/”结尾。
cookie.setDomain(domian):domain参数必须以点(".")开始。另外,name相同但domain不同的两个Cookie是两个不同的Cookie。(Cookie是不可跨域名的)
标签:ram 管理 窗口 main 重要 lis class 统计 new
原文地址:http://www.cnblogs.com/hfblogs/p/7241457.html