范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文

Session和cookie笔记

  会话技术
  1. 会话:一次会话中包含多次请求和响应。
  * 一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止
  2. 功能:在一次会话的范围内的多次请求间,共享数据
  3. 方式:
  1. 客户端会话技术:Cookie
  2. 服务器端会话技术:SessionCookie:
  1. 概念:客户端会话技术,将数据保存到客户端
  2. 快速入门:
  * 使用步骤:
  1. 创建Cookie对象,绑定数据
  * new Cookie(String name, String value)
  2. 发送Cookie对象
  * response.addCookie(Cookie cookie)
  3. 获取Cookie,拿到数据
  * Cookie[] request.getCookies()
  3. 实现原理
  * 基于响应头set-cookie和请求头cookie实现
  4. cookie的细节
  1. 一次可不可以发送多个cookie?
  * 可以
  * 可以创建多个Cookie对象,使用response调用多次addCookie方法发送cookie即可。
  2. cookie在浏览器中保存多长时间?
  1. 默认情况下,当浏览器关闭后,Cookie数据被销毁
  2. 持久化存储:
  * setMaxAge(int seconds)
  1. 正数:将Cookie数据写到硬盘的文件中。持久化存储。并指定cookie存活时间,时间到后,cookie文件自动失效
  2. 负数:默认值
  3. 零:删除cookie信息
  3. cookie能不能存中文?
  * 在tomcat 8 之前 cookie中不能直接存储中文数据。
  * 需要将中文数据转码---一般采用URL编码(%E3)
  * 在tomcat 8 之后,cookie支持中文数据。特殊字符还是不支持,建议使用URL编码存储,URL解码解析
  4. cookie共享问题?
  1. 假设在一个tomcat服务器中,部署了多个web项目,那么在这些web项目中cookie能不能共享?
  * 默认情况下cookie不能共享
  * setPath(String path):设置cookie的获取范围。默认情况下,设置当前的虚拟目录
  * 如果要共享,则可以将path设置为"/"
  2. 不同的tomcat服务器间cookie共享问题?
  * setDomain(String path):如果设置一级域名相同,那么多个服务器之间cookie可以共享
  * setDomain(".baidu.com"),那么tieba.baidu.com和news.baidu.com中cookie可以共享
  5. Cookie的特点和作用
  1. cookie存储数据在客户端浏览器
  2. 浏览器对于单个cookie 的大小有限制(4kb) 以及 对同一个域名下的总cookie数量也有限制(20个)
  * 作用:
  1. cookie一般用于存出少量的不太敏感的数据
  2. 在不登录的情况下,完成服务器对客户端的身份识别
  6. 案例:记住上一次访问时间
  1. 需求:
  1. 访问一个Servlet,如果是第一次访问,则提示:您好,欢迎您首次访问。
  2. 如果不是第一次访问,则提示:欢迎回来,您上次访问时间为:显示时间字符串
  2. 分析:
  1. 可以采用Cookie来完成
  2. 在服务器中的Servlet判断是否有一个名为lastTime的cookie
  1. 有:不是第一次访问
  1. 响应数据:欢迎回来,您上次访问时间为:2018年6月10日11:50:20
  2. 写回Cookie:lastTime=2018年6月10日11:50:01
  2. 没有:是第一次访问
  1. 响应数据:您好,欢迎您首次访问
  2. 写回Cookie:lastTime=2018年6月10日11:50:01
  import javax.servlet.ServletException; 		import javax.servlet.annotation.WebServlet; 		import javax.servlet.http.Cookie; 		import javax.servlet.http.HttpServlet; 		import javax.servlet.http.HttpServletRequest; 		import javax.servlet.http.HttpServletResponse; 		import java.io.IOException; 		import java.net.URLDecoder; 		import java.net.URLEncoder; 		import java.text.SimpleDateFormat; 		import java.util.Date; @WebServlet("/cookieTest") 	public class CookieTest extends HttpServlet { 	    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 	        //设置响应的消息体的数据格式以及编码 	        response.setContentType("text/html;charset=utf-8"); 	 	        //1.获取所有Cookie 	        Cookie[] cookies = request.getCookies(); 	        boolean flag = false;//没有cookie为lastTime 	        //2.遍历cookie数组 	        if(cookies != null && cookies.length > 0){ 	            for (Cookie cookie : cookies) { 	                //3.获取cookie的名称 	                String name = cookie.getName(); 	                //4.判断名称是否是:lastTime 	                if("lastTime".equals(name)){ 	                    //有该Cookie,不是第一次访问 	 	                    flag = true;//有lastTime的cookie 	 	                    //设置Cookie的value 	                    //获取当前时间的字符串,重新设置Cookie的值,重新发送cookie 	                    Date date  = new Date(); 	                    SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); 	                    String str_date = sdf.format(date); 	                    System.out.println("编码前:"+str_date); 	                    //URL编码 	                    str_date = URLEncoder.encode(str_date,"utf-8"); 	                    System.out.println("编码后:"+str_date); 	                    cookie.setValue(str_date); 	                    //设置cookie的存活时间 	                    cookie.setMaxAge(60 * 60 * 24 * 30);//一个月 	                    response.addCookie(cookie);                      //响应数据 	                    //获取Cookie的value,时间 	                    String value = cookie.getValue(); 	                    System.out.println("解码前:"+value); 	                    //URL解码: 	                    value = URLDecoder.decode(value,"utf-8"); 	                    System.out.println("解码后:"+value); 	                    response.getWriter().write("

欢迎回来,您上次访问时间为:"+value+"

"); break; } } } if(cookies == null || cookies.length == 0 || flag == false){ //没有,第一次访问 //设置Cookie的value //获取当前时间的字符串,重新设置Cookie的值,重新发送cookie Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); String str_date = sdf.format(date); System.out.println("编码前:"+str_date); //URL编码 str_date = URLEncoder.encode(str_date,"utf-8"); System.out.println("编码后:"+str_date); Cookie cookie = new Cookie("lastTime",str_date); //设置cookie的存活时间 cookie.setMaxAge(60 * 60 * 24 * 30);//一个月 response.addCookie(cookie); response.getWriter().write("

您好,欢迎您首次访问

"); } } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } } Session   1. 概念:服务器端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象中。HttpSession   2. 快速入门:   1. 获取HttpSession对象:   HttpSession session = request.getSession();   2. 使用HttpSession对象:   Object getAttribute(String name)   void setAttribute(String name, Object value)   void removeAttribute(String name)   3. 原理   * Session的实现是依赖于Cookie的。   4. 细节:   1. 当客户端关闭后,服务器不关闭,两次获取session是否为同一个?   * 默认情况下。不是。   * 如果需要相同,则可以创建Cookie,键为JSESSIONID,设置最大存活时间,让cookie持久化保存。   Cookie c = new Cookie("JSESSIONID",session.getId());   c.setMaxAge(60*60);   response.addCookie(c);   2. 客户端不关闭,服务器关闭后,两次获取的session是同一个吗?   * 不是同一个,但是要确保数据不丢失。tomcat自动完成以下工作   * session的钝化:   * 在服务器正常关闭之前,将session对象系列化到硬盘上   * session的活化:   * 在服务器启动后,将session文件转化为内存中的session对象即可。   3. session什么时候被销毁?   1. 服务器关闭   2. session对象调用invalidate() 。   3. session默认失效时间 30分钟   选择性配置修改   30
     5. session的特点   1. session用于存储一次会话的多次请求的数据,存在服务器端   2. session可以存储任意类型,任意大小的数据   * session与Cookie的区别:   1. session存储数据在服务器端,Cookie在客户端   2. session没有数据大小限制,Cookie有   3. session数据安全,Cookie相对于不安全

推荐收藏,鱼菜共生系统,打造有鱼有菜全新种养经济循环模式。鱼菜共生系统基本介绍鱼菜共生系统意味着鱼和蔬菜在同一环境中共同生长,互利互惠。可以看出,鱼菜共生是一种将水产养殖和水培(或无土栽培)相结合的农业生产方式。鱼菜共生系统运行原理设计模农村发展生态农业,改变传统产业结构,看是如何脱贫的。前言乡村的发展为什么落后,因为乡村的产业结构单一,农民没有更多的就业地方。大多数农村的农民都是靠外出打工赚钱,用来维持一家人的生活开支。现在农村的发展趋势并不适合,给农村带来很困扰游刃有余,超能打的智能扫拖机器人追觅L10Pro体验前言Hi大家好,我是三重奏今天给大家分享的是一款智能扫拖机器人,其实我在入手这款扫地机之前,家里已经有了两款洗地机,在长达两个月使用过程中,也确实感受到科技发展所带来的的生活便利。windows7旗舰版硬盘格式化分区的解决方法大多数深度技术的小伙伴还是喜欢使用windows7旗舰版系统的,而且很多用户都会在重装系统win7以后,格式化硬盘来重新分区,那我们要怎么在win7系统下格式化分区呢?可能有很多不无土栽培营养液输送系统设计,以及材料选型,4个重要核心要素导读无土栽培种植过程,除营养液配置因素的关键外,营养液的输送系统也是至关重要。它也是决定无土栽培作物生长过程关键的因素,对于这个营养液输送设计方案,需要根据无土栽培整体结构规划于实给父亲选的车,是希望他能够更舒服地驾驶给我父亲选辆车子,这段时间他都特别满意,因为我觉得我爸他其实个比较喜欢炫酷车里的人,但真正选车的时候他还会以实用性为主,所以在我的建议之,我们俩还选择入手的这辆车。因为主要看中它的现代农业生态园区简单的设计规划,仅供参考学习使用。简单介绍现代农业园区基本规划,希望给要上生态园建设的朋友有所帮助。大概介绍现代生态园中基本包含的项目,更多适合生态园项目请广大网友推荐。1彩虹天堂,按照彩虹颜色种植7色花卉。彩虹天有机农业,并不是单纯的用有机肥这么简单?前言分析传统观念对有机农业的来说是这样的一种理解,使用农家有机肥料种植出的作物就是有机农业产品,这个是我们大家普通认为的一种意识形态。有机产品基本认知例如,这样真实的案例,我的爱人通风降温,简单的操作,会导致大棚蔬菜的产量与品质下降吗?前言关于蔬菜大棚种植而言,基本都是在北方地区的分布。由于北方地区的冬季本身的环境因素,想要进行蔬菜的种植,就必须依赖以温室这样的种植环境。可以在冬季进行种植的大棚基本有两种类型暖棚宜动宜静多面手,小试魔浪S睡眠降噪运动耳机近期千元内真无线耳机新品,似乎是被降噪耳机和运动耳机两类充斥,甚至一度很难看到单纯的蓝牙真无线耳机,当行业卷起来的时候,同样价格人无我有就成了竞争差异化的核心。今天的主角魔浪S则是全面升级!智能降噪真无线耳机新标杆,索尼WF1000XM4体验无线耳机目前已经成为很多人生活不可或缺的一部分,尤其是这两年在手机无孔化的趋势加持下,无线耳机更是迎来了产品发布的一次大高潮,而其中在潮头时刻保持领先的品牌,毫无疑问应该是索尼,历
强迫董事会批准收购SolarCity?特斯拉股东要求马斯克归还130亿美元当地时间1月18日,特斯拉股东呼吁法官认定埃隆马斯克2016年胁迫董事会批准收购SolarCity的交易,裁定他退还给公司130亿美元(约合人民币826亿元)。股东代理律师兰迪巴伦0119复盘数字经济修复基础建设蓝筹反弹,新能源赛道大跌欧美开始犹豫疫情,市场继续走弱。微软收购暴雪的新闻,叠加昨天国家发改委说的适度超前建设数据中心,5G,区块链以及基础建设的表述,市场选择了方向,旧经济和旧的赛道全部崩塌,市场去修复支付宝集五福的活动又来了支付宝五福已于今天开启。五福已进入第7年,据了解,今年红包金额没太大变化,最大的不同是五福全面向商家开放,1000多个商家将成为主角,通过自己的支付宝小程序生活号app等多个私域阵电商价格乱象可以通过价格法解决电商影响线下实体店的主要原因,去除电商假货因素,大多是电商价格管理缺失造成的。很多知名品牌商品在网上的售价也十分乱,这里面有品牌方管理不善的原因,也有电商恶意降价的因素。电商平台流丰田汽车2月将停产日本11条生产线日本放送协会(NHK)1月19日报道,日本丰田汽车宣布将于今年2月暂停爱知县元町工厂等日本国内8家工厂11条生产线的生产。其主要原因是全球半导体供应依然匮乏。丰田称预计2月份国内外手机屏幕一会儿灭屏又自己好了,一会儿又好了是怎么回事可参考以下vivo手机的操作方式1一键加速清除后台程序如果后台程序过多,或是有异常程序常驻后台可能会影响到触屏效果,建议您通过一键加速或清理后台程序后再尝试。注请检查是否安装一键锁华为Mate40系列一机难求,P40系列却无人问津,P系列差哪了?我自己用的P40,建议不要买。拍照反应速度慢,给孩子抓拍的照片没一张好的,延迟很多。哪怕想删除一张照片,也得加载半天照片才出来。照片颜色失真厉害。P40pro很好用18岁年龄女郎千买年货啦河北购买力位居全国第八上京东春节也送货每到春节,家家户户都有一份长长的年货清单。相比于从前奔走于各大小商超市场的疲惫,近几年越来越多消费者选择在京东年货节采购所需。今年年货节期间,全国消费者纷纷战斗力不俗,河北消费者更银行春节活动,6个月定期存款利率4。5,安全吗?只要是属于存款,那么就是绝对安全的。还记得前两年非常火热的中小银行和民营银行的智能存款吗?智能存款的本质依旧是属于存款,但是是民营银行在2017年率先创新的一种高息揽储产品,最高是看怕了!学校医院监控视频被上传到B站,B站火速处理,但网友们不买账封得还不够1月17日,有网友爆料称,有用户在哔哩哔哩网站上传疑似破解公共场所摄像头后获得的监控视频,引发关注。该名网友称,在该网站上看到疑似专门破解学校医院等公共场所监控视频并上传的账号,评京东携手Shopify出海,跨境电商的蛋糕够香吗?随着跨境电商热度升温,京东也加速了业务布局。1月18日,京东集团宣布与国际电商服务平台Shopify达成战略合作,也是Shopify首个中国战略合作伙伴。具体措施上,京东计划为Sh