一Session

1概念:

(1)session是会话,是同一连接者所有页面公有的内置对象
  (2)session是一段时间,从session创建开始,到session销毁结束,默认时间为30分钟(即从最后一次访问页面开始计时)
  (3)session可以有多次请求和响应
 2 特点:
  (1)数据存储在服务器的内存中,所以数据是安全的
  (2)耗费内存资源
 3 实现保存用户状态的原理:
  (1)客户端第一次请求服务器时,服务器会生成应该唯一的sessionid并响应发送给客户端,sessionid在各浏览器不能共享
  (2)客户端再次发送请求时,服务器会根据客户端发来的sessionid与服务器中存储的sessionid进行匹配,匹配成功则可以拿数据,不成功则分配新的sessionid和存储区域

4 session对象常用的方法
  (1)getId():获得当前session的sessionid
  (2)setAttribute():向session空间中存储对象
  (3)getAttribute():从当前session对象获得相匹配的对象
  (4)invalidate():销毁所有的session对象
  (5)removeAttribute():移除某一个指定的session对象
  (6)getCreationTime():获得当前session创建的时间
  (7)getcLastAcessedTime():获得客户端最后一次请求服务器的时间
  (8)setMaxlnactivelnterval():设置session的最大请求间隔时间,单位为秒
  (9)getMaxlnactivelnterval():获得session的最大请求间隔时间,单位为秒
 5 session将用户信息保存在服务器端的内存中,信息比较安全但服务器端负担较重

二 Cookie
 1 概念:
  (1)cookie不是内置对象,使用时需要创建
  (2)cookie的创建:Cookie cookie =new Cookie(“”,“”)
  (3)cookie的构造参数需要两个参数,一个参数是cookie的名称,一个参数是cookie的值
 2 特点:

(1)数据默认存储在浏览器内存中,叫临时cookie,所以数据是不够安全的
  (2)不会耗费内存资源
 3 cookie的常用方法:
  (1)setMaxAge():设置cookie的存活时间
  (2)getName():获得cookie的名称
  (3)getValue():获得cookie的值

4 请求和响应

  (1)response.addCookie():将Cookie发送给客户端,即将cookie的键和值写到浏览器中
  (2)request.getCookies():从浏览器中获取所有的cookie内容
 5 cookie的存储时间:
 (1)setMaxAge():立即过期
  (2)setMaxAge():设置cookie的存活时间,单位为秒
 6 cookie默认不识别中文,需要设置后才可以使用
  (1)需要使用URLEncoder的encode方法将汉字编码后存储:userName = URLEncoder.encode(userName, "utf-8");
  (2)需要使用URLDecoder的decode方法将汉字装换编码后读取:userName = URLDecoder.decode(userName,"utf-8");

7 cookie的其他用法(仅了解):
  (1)设置域:setDomain(“其他网址”):本网址的cookie可以被其他网址读取
  (2)设置路径:setPath(“/....”):为了区分表示不同路径下的相同的cookie键
三 Session和Cookie的区别:
 1 存储位置:
  (1)session:数据存储在服务器的内存中,耗费内存资源
  (2)cookie:数据默认存储在浏览器内存中,不会耗费内存资源
 2 数据安全性:
  (1)session:信息比较安全
  (2)cookie:信息不够安全

3 保存的时间: 
  (1)session:不能持久地保存信息 
  (2)cookie:能够长期保存信息 
 4 值类型: 
  (1)session:值是Object类型的 
  (2)cookie:值是String类型的
---------------------
作者:gongchengshiaa
来源:CSDN
原文:https://blog.csdn.net/gongchengshiaa/article/details/54630399
版权声明:本文为博主原创文章,转载请附上博文链接!

Session&Cookie(Introduction、Application)的更多相关文章

  1. webform基础介绍及页面传值(session,cookie)、跳转页面

    一,IIS 1.首先知道IIS是个什么东西:它是web服务器软件,安装在服务器上,接受客户端发来的请求,并传送给服务器端,然后响应请求并送回给客户端.类似于饭店里的服务员. 2.会安装IIS——控制面 ...

  2. Session &cookie introduction,usage

    Cookie 1)什么是Cookie?      服务器为了识别用户身份而临时存放在浏览器端的少量数据.     2)工作原理         浏览器访问服务器时,服务器将一些数据以set-cooki ...

  3. session & cookie(li)

    Session & Cookie 一.定义 Session,用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间.Cookie,由服务器端生成,发送 ...

  4. C#-WebForm-★内置对象简介★Request-获取请求对象、Response相应请求对象、Session全局变量(私有)、Cookie全局变量(私有)、Application全局公共变量、ViewState

    内置对象: 1.Request - 获取请求对象 用法:接收传值 protected void Page_Load(object sender, EventArgs e) { TextBox1.Tex ...

  5. application、session、request、page的作用范围、Application,Session和Cookie的区别

    Web应用中的JSP和servlet都是由web服务器来调用,Jsp和Servlet之间通常不会相互调用,那么Jsp和Servlet之间交换数据就要用到application.session.requ ...

  6. Application,Session,Cookie,ViewState,Cache对象用法、作用域的区别

    1.Application:用于保存所有用户共用的数据信息.在Asp.Net中类似的配置数据最好保存在Web.config文件中.如果使用Application对象,一个需要考虑的问题是任何写操作都要 ...

  7. URL、Session、Cookies、Server.Transfer、Application和跨页面传送,利弊比较

    URL.Session.Cookies.Server.Transfer.Application和跨页面传送.-本题考查面试者对ASP.NET中多页面传值的理解是否全面.因为ASP.NET的页面表单提交 ...

  8. [Asp.Net]状态管理(Session、Application、Cache)

    上篇博文介绍了在客户端状态管理的两种方式:http://www.cnblogs.com/wolf-sun/p/3329773.html.除了在客户端上保存状态外,还可以在服务器上保存状态.使用客户端的 ...

  9. Asp.net 服务器Application,Session,Cookie,ViewState和Cache区别

    2.8 Context 的使用Context 对象包含与当前页面相关的信息,提供对整个上下文的访问,包括请求.响应.以及上文中的Session 和Application 等信息.可以使用此对象在网页之 ...

随机推荐

  1. vsftp快速搭建ftp服务器

    什么是vsftp: vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux, BSD, Solaris, HP-UX 以及 IRIX 上面.它支持很多其他的 FT ...

  2. javaweb(1)之tomcat使用

    安装 1.点击下载. 2.解压到一个目录. 3.进入解压后的 bin 目录,双击该文件夹下的 startup.bat 即可运行. 4.若运行成功,会有一个窗口悬停如下: 访问地址: localhost ...

  3. C#设计模式(3)——工厂方法模式(转)

    C#设计模式(3)——工厂方法模式   一.引言 在简单工厂模式中讲到简单工厂模式的缺点,有一点是——简单工厂模式系统难以扩展,一旦添加新产品就不得不修改简单工厂方法,这样就会造成简单工厂的实现逻辑过 ...

  4. android studio 中如何合并冲突(转)

    合并分支,解决冲突 执行Git merge ,如果有冲突,就会出现如下格式: <<<<<<< HEAD 这个位置的内容就是当前所在分支的内容 ======= ...

  5. Python 第五阶段 学习记录之----rabbmit

    消息服务器rabbmit RabbitMQ 消息队列 python里有两个Q, threading queue.不同线程间数据交互 进程Queue: 不同进程间交互这个说法是错误的. 这个是用于父进程 ...

  6. Linux基础命令---sysctl修改内核参数

    sysctl sysctl指令用来修改正在运行的内核参数,可以修改的参数都保存在/proc/sys/目录中,修改会立即生效.Linux中的sysctl支持需要Procfs.您可以使用sysctl来读取 ...

  7. javax.el.PropertyNotFoundException: Property 'know_id' not found on type java.lang.String

    今天通过Servlet明明查出来了结果,在跳转到页面时报这个异常.根据经验仔细核对了字段书写时,未发现错误. 耐心仔细检查之后发现el表达式的List集合写错了 <c:forEach items ...

  8. java SE学习过程中的知识点小结(一)(很多内容过于基础,希望能帮助到学习路上的同学)————欢迎老手批评指正

    ①.把boolean测试放在括号内:例如while(x==4){}  //当然看过很多博客,里面有工作经验的工作者说以后公司可能习惯性写(4==x) ②.所有java程序都定义在类中(也是区别于C++ ...

  9. Android中的task和stack

    今天在重新理了一遍intent的过程中发现task是一个神奇的东西,而它又和stack有着很深的联系.task顾名思义是一个任务,但是这个任务可不一定只是来自一个app,比如我用微信来发一张图片,那么 ...

  10. vc++2010如何新建项目并在控制台打印helloworld

    关于写c++使用什么集成开发环境的问题其实挺纠结的.我找了好久找到codeblocks,发现这款IDE还是最适合用在最标准的c++语法环境中.其实先前装过vs2015旗舰版,但是这款软件太大了,非常消 ...