Java.Web学习笔记 Cookie Session

Cookie机制
1. Cookie可以记录用户访问次数。
而且各个客户端的cookie彼此独立,互不可见。
2. 域名不同,Cookie是不能互相操作的,除非做了特殊处理
3. Cookie中出现中文要用URLEncoder.encode(“姓名”,”UTF-8”);这样处理
取的时候用URLEncoder.decode(cookie.getName()或者cookie.getValue(),”UTF-8”);
4. Cookie的删除:新建一个同名Cookie,并将maxAge设置为0即可
5. 如果想要两个差不多的域名使用同一个cookie,那么设置
cookie.setDomain(“.google.com”); //注意要.开头
Session机制
1. Session和cookie不同的是session保存在服务器上,cookie保存在客户端上
2. Session也是一种key-value的属性对,通过getAttribute(String key) 和setAttribute(String key, Object value)
3. Servlet通过request.getSession()获取Session,还可以通过request.getSession(Boolean create)来获取session。
两者区别是,如果session不存在,那么request.getSession()返回null,而request.getSession(true)会先创建一个Session然后把这个session返回
4. JSP中有隐藏对象session,可以直接调用,如果设置<%@ page session=”false” %>那就不能使用这个隐藏session了
5. Session可以直接保存复杂定义的对象(用户自定义的对象)
6. 虽然是在服务器端保存的,但是Session还是分客户端的,不同客户端之前不能访问各自的Session。
7. Session在用户第一次访问服务器的时候自动创建,注意只有访问JSP、Servlet等程序是才会创建,访问静态HTML、IMAGE等静态资源不会创建
8. Session也有超时时间,如果超过了超时时间没有访问过服务器,Session就自动失效了。
setMaxInactiveInterval(long interval)和getMaxInactiveInterval() //参数是秒
或者调用 Session的invalidate()也可以让它失效
也可以通过修改web.xml

//参数是分钟
60

9. Session通过发送给客户端一个名为JSESSIONID的cookie来确定用户,然后maxAge一般为-1,而且,如果子窗口是通过点击父窗口的链接或者脚本打开的,那么他们共享同一个session
10. 如果客户端对cookie不支持,那么就采用URL地址重写。
11. 通过response.encodeURL(“index.jsp”)来重写输出,如果客户端支持Cookie那么生成的是原URL,如果不支持就带有jsessionid

Index.jsp;jsessionid=XXXXXX
如果,response.encodeURL(“index.jsp?c=1”);
输出就是 index.jsp;jsessionid=XXXXXX?c=1
12. 如果是使用页面重定向,那就是response.encodeRedirectURL(”index.jsp”)如果客户端支持Cookie那么生成的是原URL,如果不支持就带有jsessionid
13. 禁止cookie,在/META-INF/context.xml配置
加一句
//sessionweb是项目名

Cookie和Session的对比
1. 存取方式
Cookie只能ASCII字符串,如果要保存其他格式需要转换特别不方便。
Session是可以存取任意类型的数据。
2. 隐私安全
Cookie存在客户端浏览器中,对客户端是可见的,会被一些客户端程序窥探
Session是存在服务器上的,对客户端透明,隐私数据不会被泄露。
3. 有效期来说
Cookie只要设置maxAge一个很大的数即可长期有效
Session是通过jsessionid的cookie来辨别客户端,关闭浏览器就失效,而且这个是存在服务器中的不能负载过多session
4. 服务器的负担上来说
Cookie存在客户端,不占用服务器资源
Session存在服务端,占用资源,过多会严重影响服务器
5. 浏览器支持上来说
Cookie需要客户端支持
Session不需要,可以用Session+URL
6. 跨域名
Cookie可以支持跨域名访问,只要设置一下domain就好了
Session不支持

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值