会话技术-cookie入门(十五)
来源:互联网 发布:ubuntu wine 1.9 编辑:程序博客网 时间:2024/06/07 00:04
一、会话
1.存储客户端的状态
由一个问题引出今天的内容,例如网站的购物系统,用户将购买的商品信息存储到哪里?因为Http协议是无状态的,也就是说每个客户访问服务器端资源时,服务器并不知道该客户端是谁,所以需要会话技术识别客户端的状态。会话技术是帮助服务器记住客户端状态(区分客户端)
2.会话技术
从打开一个浏览器访问某个站点,到关闭这个浏览器的整个过程,称为一次会话。会话技术就是记录这次会话中客户端的状态与数据的。
会话技术分为Cookie和Session:
Cookie:数据存储在客户端本地,减少服务器端的存储的压力,安全性不好,客户端可以清除cookie
Session:将数据存储到服务器端,安全性相对好,增加服务器的压力
二、cookie
Cookie技术是将用户的数据存储到客户端的技术,我们分为两方面学习:
第一,服务器端怎样将一个Cookie发送到客户端
第二,服务器端怎样接受客户端携带的Cookie
2.1 服务器端向客户端发送一个Cookie
1)创建Cookie:
Cookie cookie = new Cookie(StringcookieName,String cookieValue);
示例:
Cookie cookie = new Cookie("username","zhangsan");
那么该cookie会以响应头的形式发送给客户端:
注意:Cookie中不能存储中文
2)设置Cookie在客户端的持久化时间:
cookie.setMaxAge(int seconds); ---时间秒
注意:如果不设置持久化时间,cookie会存储在浏览器的内存中,浏览器关闭 cookie信息销毁(会话级别的cookie),如果设置持久化时间,cookie信息会 被持久化到浏览器的磁盘文件里
示例:
cookie.setMaxAge(10*60);
设置cookie信息在浏览器的磁盘文件中存储的时间是10分钟,过期浏览器自动删除该cookie信息
3)设置Cookie的携带路径:
cookie.setPath(String path);
注意:如果不设置携带路径,那么该cookie信息会在访问产生该cookie的web资源所在的路径都携带cookie信息
示例:
cookie.setPath("/WEB16");
代表访问WEB16应用中的任何资源都携带cookie
cookie.setPath("/WEB16/cookieServlet");
代表访问WEB16中的cookieServlet时才携带cookie信息
4)向客户端发送cookie:
response.addCookie(Cookie cookie);
5)删除客户端的cookie:
如果想删除客户端的已经存储的cookie信息,那么就使用同名同路径的持久化时间为0的cookie进行覆盖即可
实例:
package com.ken.cookie;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.Cookie;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class SendCookieServlet extends HttpServlet {private static final long serialVersionUID = 1L;protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {// 1.创建cookie对象Cookie cookie = new Cookie("name", "zhangsan");// 2.将cookie中存储的信息发送到客户端----头response.addCookie(cookie);}protected void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {doGet(request, response);}}运行效果:
2.2 服务器端怎么接受客户端携带的Cookie
只要客户端收到了cookie,那么下次访问服务器的任何资源, 默认都带着cookie。
- 会话技术-cookie入门(十五)
- [置顶]会话技术( Cookie ,Session)
- (13)会话和cookie技术
- 会话技术-cookie的API(十六)
- 【cookie/session】会话技术
- 会话技术cookie
- 会话技术之Cookie
- 会话技术(Cookie,Session)
- cookie会话技术
- 会话技术cookie
- Cookie会话技术分析
- 会话技术Cookie&Session
- 会话技术Cookie&Session
- 会话技术Cookie&Session
- 会话技术之COOKIE
- 会话技术 Cookie&Session
- 会话技术cookie/session
- Cookie会话跟踪技术
- MVC4发送邮件
- 简单Rxjava订阅的源码流程分析
- Mac系统WIFI环境下用idea开发java出现IPv6地址问题
- Hie with the Pie (状态dp)
- SharedPreferences记住信息
- 会话技术-cookie入门(十五)
- 人工智能软件工程师软件清单
- vue 中 滚动条始终定位在底部
- 算法导论笔记(五)
- mabatis中resultMap中的映射小问题
- SpringMVC之数据回显
- Namenode HA原理以及配置
- 调用相册,相机
- python实现链表的深度优先遍历