我是靠谱客的博主 悦耳美女,最近开发中收集的这篇文章主要介绍cookie&session&四种范围对象作用域,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.Cookie(客户端)

Cookie不是内置对象,使用时需要自己实例化,为name=value键值对形式。Cookie是由服务器端生产,再发给客户端保存的,相当于本地缓存的作用,可以访问效率,但安全性较差。

构造方法:public Cookie(String name, Sttring value);
在使用中文时需要进行编码与解码

获取name值:String getName();

获取value值:String getValue();

设置最大有效期(生命周期),单位为秒:void setMaxAge(int expiry);

执行过程:
1.服务器端准备Cookie
Cookie cookie = new Cookie(“name”, “value”);
response.addCookie(cookie);
2.页面跳转(请求转发、重定向都行)
3.客户端获取Cookie(request.getCookies()?;
获取cookie时,只提供了获取全部Cookie值的方法,需要通过遍历来找到需要的cookie。
另外,除了自己设置的cookie对象外,还有一个名为JSESSIONID的cookie对象。客户端第一次请求服务器端时,服务端会产生一个session对象(用于保存该客户信息),并且每个session对象都会有一个唯一的sessionID(用于区分不同客户),服务器端同时会产生一个cookie对象,该cookie对象的name=JSESSIONID,value=sessionID。服务器端在响应客户端的同时将该cookie发送给客户端。由此,客户端好服务器端客户就可以通过JSESSIONID=sessionID来一一对应了。
在这里插入图片描述

2.session(服务器端)

session:会话

获取sessionId:String getId();

判断是否为新用户(第一次访问):boolean isNew();

清楚session(使session失效):void invalidate();

设置最大有效非活动时间(用户未操作时为非活动时间), 单位为秒:void setMaxInactiveInterval();

获取最大有效非活动时间:int getMaxInactiveInterval();

NULLsessioncookie
保存位置服务器端客户端
安全性较安全较不安全
保存内容objectstring
3.application 全局对象

String getContextPath(); 获取虚拟路径

String getRealPath(); 获取虚拟路径相对的绝对路径

4.四种范围对象
对象对象名范围(从小到大)
pageContextJSP页面容器当前页面有效
reqeust请求对象同一次请求有效
session会话对象同一次会话内有效
application全局对象全局有效(整个项目有效)

共有方法:

Object getAttribute(String name); 根据属性名,获取属性值

void setAttribute(String name, Object obj);新增属性对,同时也可以对属性值进行修改

void removeAttribute(String name);根据属性值,删除对象

详细

pageContext: 跳转后无效

request:同一次请求内有效,如请求跳转,但重定向跳转不属于同一次请求

session:无论怎么跳转都有效,当关闭或者切换浏览器无效

application:整个项目期间有效,服务器关闭后无效

多学一招:多个项目共享,且重启服务器仍然有效可以使用JNDI技术

ps:对象范围越大,损耗越大,尽量当前可使用对象中范围较小的对象。

最后

以上就是悦耳美女为你收集整理的cookie&session&四种范围对象作用域的全部内容,希望文章能够帮你解决cookie&session&四种范围对象作用域所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(340)

评论列表共有 0 条评论

立即
投稿
返回
顶部