cookies session application三种状态对象的使用及区别(Application,Session,Cookie)

合集下载

cookie和session的作用及其区别

cookie和session的作用及其区别

session机制是一种服务器端的机制,服务器使用一种类似
于散列表的结构(也可能就是使用散列表)来保存信息。
但程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这个客户端的请求里是否包含了一个session标识-称为session id,如果已经包含一个session id则说明以前已经为此客户创建过session,服务器就按照session id把这个session检索出来使用(如果检索不到,可能会新建一个,这种情况可能出现在服务端已经删除了该用户对应的session对象,但用户人为地在请求的URL后面附加上一个JSESSION的参数)。
调用logOut,将客户从Web服务器中注销,同时废弃所有与该用户相关联的会话(每个Web应用至多一个)。这个操作有可能影响到服务器上多个不同的Web应用。
二十三、使用isNew来判断用户是否为新旧用户的错误做法
public boolean isNew()方法如果会话尚未和客户程序(浏览器)发生任何联系,则这个方法返回true,这一般是因为会话是新建的,不是由输入的客户请求所引起的。
为存储下来的链接含有错误的标识信息-该URL后面的SESSION ID已经过期了。
十七、使用隐藏的表单域有什么缺点
仅当每个页面都是有表单提交而动态生成时,才能使用这种方法。单击常规的超文本链接并不产生表单提交,因此隐藏的表单域不能支持通常的会话跟踪,只能用于一系列特定的操作中,比如在线商店的结账过程
六、cookie的读取
1.调用request.getCookie
要获取有浏览器发送来的cookie,需要调用HttpServletRequest的getCookies方法,这个调用返回Cookie对象的数组,对应由HTTP请求中Cookie报头输入的值。

ASP整理(期末复习题)

ASP整理(期末复习题)

D .第一次在服务器端,以后客户

3. 在 HTML 中,用于设置文字颜色的标记是( A
)。
A .<Font>
B. <B>
C. <I>
D. <U>
4. 若要在页面中创建一个图形超链接,要显示的图形为 myhome.jpg,所链接的地址为
,以下用法中,正确的是( B );
D. Response.Cookies(“username”)= ”guest”
Response.Cookies(“username”).Expires=DateAdd(1, “ww”,Date)
14. 若要设置服务器执行 ASP 页面的最长时间为 70 秒,以下语句中,正确的是( C )。
A.Server.Timecout=70
10. 除了哪个不是 Session 对象拥有的特性。( D )
A.消耗资源少
B.可以区分储存每个访问者的状态
C.用户长时间不访问可以自动消失 D.可以在不同用户间共享
11. 下面关于编写 ASP 程序,说法不正确的是( A )。
A.<%和%>符号必须和 ASP 语句放在同一行。
B.ASP 语句要分行写,一般不把多条 ASP 语句写在一行里。
A. Response.MapPath( 虚拟路径)
B. Request.MapPath(虚拟路径)
C. Server.URLEncode( 虚拟路径)
D. Server. MapPath( 虚拟路径)
16. 下列关于 Global.asa 文件的叙述错误的是( A )。
A.Global.asa 文件被放在网站的任意目录下都会被执行
1.表单信息传送到服务器的方式有 post 和 get ,服务器端分别使用

session、cookie、token的区别及联系

session、cookie、token的区别及联系

session、cookie、token的区别及联系sessionsession的中⽂翻译是“会话”,当⽤户打开某个web应⽤时,便与web服务器产⽣⼀次session。

服务器使⽤session把⽤户的信息临时保存在了服务器上,⽤户离开⽹站后session会被销毁。

这种⽤户信息存储⽅式相对cookie来说更安全,可是session有⼀个缺陷:如果web服务器做了负载均衡,那么下⼀个操作请求到了另⼀台服务器的时候session会丢失。

cookiecookie是保存在本地终端的数据。

cookie由服务器⽣成,发送给浏览器,浏览器把cookie以kv形式保存到某个⽬录下的⽂本⽂件内,下⼀次请求同⼀⽹站时会把该cookie发送给服务器。

由于cookie是存在客户端上的,所以浏览器加⼊了⼀些限制确保cookie不会被恶意使⽤,同时不会占据太多磁盘空间,所以每个域的cookie数量是有限的。

cookie的组成有:名称(key)、值(value)、有效域(domain)、路径(域的路径,⼀般设置为全局:"\")、失效时间、安全标志(指定后,cookie 只有在使⽤SSL连接时才发送到服务器(https))。

下⾯是⼀个简单的js使⽤cookie的例⼦:⽤户登录时产⽣cookie:document.cookie = "id="+result.data['id']+"; path=/";document.cookie = "name="+result.data['name']+"; path=/";document.cookie = "avatar="+result.data['avatar']+"; path=/";使⽤到cookie时做如下解析:var cookie = document.cookie;var cookieArr = cookie.split(";");var user_info = {};for(var i = 0; i < cookieArr.length; i++) {user_info[cookieArr[i].split("=")[0]] = cookieArr[i].split("=")[1];}$('#user_name').text(user_info[' name']);$('#user_avatar').attr("src", user_info[' avatar']);$('#user_id').val(user_info[' id']);tokentoken的意思是“令牌”,是⽤户⾝份的验证⽅式,最简单的token组成:uid(⽤户唯⼀的⾝份标识)、time(当前时间的时间戳)、sign(签名,由token的前⼏位+盐以哈希算法压缩成⼀定长的⼗六进制字符串,可以防⽌恶意第三⽅拼接token请求服务器)。

request,session,application的区别

request,session,application的区别

关于sevlet中request,session,application三者关系的形象解析几乎所有的Web开发语言都支持Session功能,Servlet也不例外。

Servlet/JSP中的Session功能是通过作用域(scope)这个概念来实现的。

作用域分为四种,分别为:page 在当前页面有效(仅用于JSP中)request 在当前请求中有效session 在当前会话中有效application 在所有应用程序中有效是不是看不太明白?page因为仅用于JSP中,这里只讲述其他三种作用域。

首先要声明的一点,所谓“作用域”就是“信息共享的范围”,也就是说一个信息能够在多大的范围内有效。

话说武松一日来到景阳岗,见一旗帜迎风飘扬,旗子上书五个大字“三碗不过岗”。

武松叫道:“店家,拿三碗酒来,再切两斤熟牛肉!”店小二应声道:“三碗好酒,二斤熟牛肉啰~~”里面厨师赶忙当当当当切好牛肉,店小二倒上三碗酒,店小二端上前来。

武松咕咚咕咚连干三碗,叫一声“好酒!店家,再来三碗!”小二忙又倒上三碗好酒,武松一饮而尽。

就这样前前后后武松一共喝了十八大腕。

付了帐刚要走,店小二道:“客官,这前面山上有大虫,客官刚刚喝完十八碗酒恐怕过不得岗,不如在小店暂住一夜,待明天和猎户一同过岗岂不是好?”之后武松说什么就留待各位看官自己去回忆啦。

在这段武松打虎中,大家有没有看到些熟悉的东西?武松: 浏览器。

酒馆: 服务器。

店小二、厨师: Servlet或者JSP。

来三碗好酒!: 浏览器向服务器发出HTTP请求。

店小二上酒: 服务器的响应。

武松从进店到离开: 一个HTTP对话。

我们可以看到,Web交互的最基本单位为HTTP请求(武松点菜)。

每个用户从进入网站到离开网站这段过程称为一个HTTP会话(武松进店到出店),一个服务器的运行过程中会有多个用户访问,就是多个HTTP会话(酒馆当然不可能只接待武松一个客人)。

那么作用域就可以理解为:request HTTP请求开始到结束这段时间session HTTP会话开始到结束这段时间application 服务器启动到停止这段时间request一个HTTP请求的处理可能需要多个Servlet合作(武松点菜时店小二就要吩咐厨房做菜),几个Servlet之间可以通过某种方式传递信息(店小二就用吆喝的方式通知厨房),但这个信息在请求结束后就无效了(厨房在做完菜之后就不用再管这道菜的事儿了)。

浅谈page,request,session,application四种范围

浅谈page,request,session,application四种范围

浅谈page,request,session,application四种范围JaveWeb四种主要的范围:1.page: page表⽰页⾯范围。

页⾯范围对应的时间段为:从客户访问⼀个jsp⽂件开始,到这个jsp⽂件执⾏结束。

2.request: request表⽰请求范围。

请求范围时间段为:从客户请求访问⼀个jsp⽂件开始,到这个jsp返回响应结果结束,如果这个jsp⽂件把请求转发给其他web组件,那么知道其他web组件返回响应结果结束。

请求范围是指服务器响应⼀次客户请求的过程,从servlet容器接收到⼀个客户请求开始,到返回响应结果结束, 请求范围与servletRequest和servletResponse相对应。

3.session: session表⽰会话范围。

会话范围对应着整个会话的⽣存周期。

会话范围是指浏览器与⼀个web应⽤进⾏⼀次会话的过程。

具体实现上,会话范围与httpsession对象的⽣命周期相对应。

因此web组件只要共享同⼀个httpsession对象也就能共享会话范围内的数据。

举例说明: 浏览器进程第⼀次请求访问应⽤中⼀个⽀持会话的⽹页,servlet容器驶⼊寻找请求中表⽰sessionID的cookie,由于还不存在这样的cookie,所以⼀个新的会话开始了,创建⼀个httpsession的对象,然后为它分配唯⼀的sessionID,并把id作为Cookie 放在http响应结果中,当浏览器接收到http响应后,会把sessionID保存的cookie保存在客户端。

浏览器进程继续访问应⽤的任意⼀个⽀持会哈德页⾯,http请求会包含表⽰sessionID的Cookie,servlet容器试图寻找http请求中sessionID的cookie,找到后可以找到与sessionID匹配的httpSession。

4.application(应⽤)范围: web应⽤范围对应整个web应⽤的⽣存周期。

《Web程序设计》复习题库及答案

《Web程序设计》复习题库及答案

《Web程序设计》练习测试题库一、单选题1、下面哪个是属性而不是标记()。

A、IMGB、FORMC、 HREFD、TD2、 App_Data目录用来放置()。

A、共享的数据库文件B、共享文件C、被保护的文件D、代码文件3、下面关于绝对路径的说法,正确的是()。

A、绝对路径是被链接文档的完整URL,不包括使用的传输协议B、使用绝对路径需要考虑源文件的位置C、在绝对路径中,如果目标文件被移动,则链接同样可用D、创建外部链接时,必须使用绝对路径4、系统提供数据库通用接口的目的是为了()。

A、提高程序运行的效率B、应用程序设计不必考虑数据库的类型C、保证程序安全D、易于维护5、在配置GridView控件的SqlDataSource数据源控件过程中,单击【高级】按钮的目的是()。

A、打开其他窗口B、输入新参数C、生成SQL编辑语句D、优化代码6、下面几个图形控件中,不能执行鼠标单击事件的控件是()。

A、ImageButtonB、ImageC、ImageMapD、ImageURL7、web.config文件不能用于()。

A、Application事件定义B、数据库连接字符串定义C、对文件夹访问授权D、基于角色的安全性控制8、CSS样式不包括()。

A、基于元素的样式B、基于类的样式C、基于ID的样式D、基于文件的样式9、下面对protected修饰符说法正确的是()。

A、只有在派生类中访问B、只能在所属的类中访问C、能在当前应用程序中访问D、能在所属的类或派生类中访问10、使用ValidatorSummary控件需要以对话框形式显示错误信息,则应()。

A、设置属性ShowSummary值为trueB、设置属性ShowMessageBox值为trueC、设置属性ShowSummary值为falseD、设置属性ShowMessageBox值为false11、Session状态和Cookie状态的最大区别是()。

A、存储的位置不同B、类型不同C、生命周期不同D、容量不同12、下面有关SqlDataSource控件的描述中错误的是()。

Cookie与Session用法

Cookie与Session用法

写cookie,取cookie1、添加cookies(用户信息保存,修改都会依赖cookies)HttpCookie cookies = newHttpCookie("Porschev");cookies["name"] = "Zhong Wei";cookies["sex"] = "1";cookies.Expires = DateTime.Now.AddMinutes(20);Response.Cookies.Add(cookies);2、修改cookies( 在程序中难免会操作,对用户信息的修改,更新数据库后,也会修改cookies,为了修改后的显示)方法一:HttpCookie cookies =Request.Cookies["Porschev"];cookies["name"] = "wilson Z";再取cookies中的name,结果:wilson Z;当这样修改cookies 时,在更新方法中再取这个名为Porschev的cookies,name 的值还为Zhong Wei而非wilson Z,页面显示也不对(己排除页面缓存原因,更新也确实没有成功)修改方法一:HttpCookie cookies =Request.Cookies["Porschev"];cookies["name"] = "wilson Z";//加上下面一句Response.Cookies["Porschev"].Expires = DateTime.Now.AddMinutes(-1);再次测式,结果正确,取出name的值为:wilson Z,页面显示也正确。

DateTime.Now.AddMinutes(-1)让以前存入过期时间为20min的cookies失效3、得到cookiesHttpCookie cookies =Request.Cookies["Porschev"];string name = cookies["name"]; //通过key取出对应value,多key同理取4、删除cookies方法一:(最常用的一个删除cookies方法)if (Request.Cookies["Porschev"] != null){HttpCookie cookies = newHttpCookie("Porschev");cookies.Expires =DateTime.Now.AddDays(-1);Response.Cookies.Add(cookies);}在项目中测式,删除部分cookies失败,于是换一种方法foreach (string cookiename inRequest.Cookies.AllKeys){HttpCookie cookies =Request.Cookies[cookiename];if (cookies != null){cookies.Expires =DateTime.Today.AddDays(-1);Response.Cookies.Add(cookies);Request.Cookies.Remove(cookiename);}}方法一只能删除提当前Response中的cookies,不对完成删除掉客端的cookies,用遍历cookies的方式可以 Session的用法Session简介:简单来说就是服务器给客户端的一个编号。

ASPNET动态网页设计习题答案-作者-张德芬-教材习题和实训解答

ASPNET动态网页设计习题答案-作者-张德芬-教材习题和实训解答

动态网页设计-—习题和实训参考答案第1章ASP。

NET概述 (1)第2章HTML语言基础 (2)第3章语法基础 (3)第4章服务器控件 (6)第5章验证控件 (7)第6章常用内置对象 (9)第7章访问数据库 (10)第8章ASP。

NET开发实训 (12)第1章概述实训:本章的实训内容主要是建立的运行和编辑环境。

具体包括以下几项任务:1、建立以各自名字命名的文件夹,作为本课程学习目录2、安装IIS,安装完后在IE中输入http://localhost,看能否打开欢迎页面,检测是否安装成功。

localhost也可用“127。

0。

0。

1"代替。

答:安装IIS的步骤详见教材P5。

3、建立一个虚拟目录,以第1步建立的文件夹为物理目录,虚拟目录名用姓名的拼音答:建立虚拟目录的步骤详见教材P8。

4、建立.NET运行环境(1)下载和安装MDAC答:MDAC的安装详见教材P10。

(2)下载和安装。

NET Framework 1。

1版可发行组件包答:.NET Framework 1.1版可发行组件包的安装详见教材P11。

5、安装Dreamweaver 8答:Dreamweaver 8的安装详见教材P14。

6、在Dreamweaver 8中建立站点答:Dreamweaver 8中建立站点的步骤详见教材P18。

习题:1、解释动态网页和静态网页的含义。

在网页中插入动画或影视媒体是否就称其为动态网页? 答:根据网页的内容是固定的还是程序生成的,网页分为两种:静态网页和动态网页。

这两种网页的制作语言不同.静态网页使用语言是HTML(超文本标记语言),网页的内容是事先编制好的。

动态网页的网页内容不是固定不变的,而是由程序动态创建的。

根据实现技术,动态网页又可以细分为客户端动态网页和服务器端动态网页.在网页中插入动画或影视媒体并不是动态网页。

2、ASP与有什么不同?答:ASP。

NET与ASP有很大的不同。

ASP程序是解释执行,未经优化;而ASP。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Application状态对象Application 对象是HttpApplication 类的实例,将在客户端第一期从某个特定的应用程序虚拟目录中请求任何URL 资源时创建。

对于Web 应用上的每个 应用程序都要创建一个单独的实例。

然后通过内部Application 对象公开对每个实例进行引用。

1.Application 对象的特性对于Application 对象有如下特性:数据可以在 Application 对象之内进行数据共享,一个Application 对象可以覆盖多个用户。

Application 对象可以用Internet Service Manager 来设置而获得不同的属性。

单独的 Application 对象可以隔离出来并运行在内存之中。

可以停止一个 Application 对象而不会影响到其他Application 对象。

Application 对象常用的属性有:AllKey:获取HttpApplicationState 集合中的访问键。

Count:获取HttpApplicationState 集合中的对象数。

其中Application 对象的常用方法有:Add:新增一个Application 对象变量。

Clear:清除全部的Application 对象变量。

Get:通过索引关键字或变量名称得到变量的值。

GetKey:通过索引关键字获取变量名称。

Lock:锁定全部的Application 对象变量。

UnLock:解锁全部的Application 对象变量。

Remove:使用变量名称移除一个Application 对象变量。

RemoveAll:移除所有的Application 对象变量。

Set:使用变量名更新一个Application 对象变量。

2.Application 对象的使用通过使用Application 对象的方法,能够对Application 对象进行操作,使用Add 方法能够创建Application 对象,示例代码如下所示。

Application.Add("App", "MyValue"); // 增加Application 对象Application.Add("App1", "MyValue1"); // 增加Application 对象Application.Add("App2", "MyValue2"); // 增加Application 对象若需要使用Application 对象,可以通过索引Application 对象的变量名进行访问,示例代码如下所示:Response.Write(Application["App1"].ToString()); // 输出Application 对象上述代码直接通过使用变量名来获取Application 对象的值。

通过Application 对象的Get 方法也能够获取Application 对象的值,示例代码如下所示。

for (int i = 0; i < Application.Count; i++) // 遍历Application 对象{Response.Write(Application.Get(i).ToString()); // 输出Application 对象}Application 对象通常可以用来统计在线人数,在页面加载后可以通过配置文件使用Application 对象的Add 方法进行Application 对象的创建,当用户离开页面时,可以使用Application 对象的Remove 方法进行Application 对象的移除。

当Web 应用不希望用户在客户端修改已经存在的Application 对象时,可以使用Lock 对象进行锁定,当执行完毕相应的代码块后,可以解锁。

示例代码如下所示。

Application.Lock(); // 锁定Application 对象Application["App"] = "MyValue3"; //Application对象赋值Application.UnLock(); // 解锁Application 对象上述代码当用户进行页面访问时,其客户端的Application 对象被锁定,所以用户的客户端不能够进行Application 对象的更改。

在锁定后,也可以使用UnLock 方法进行解锁操作。

Session状态对象Session 对象是HttpSessionState 的一个实例,Session 是用来存储跨页程序的变量或对象,功能基本同Application 对象一样。

但是Session 对象的特性与Application 对象不同。

Session 对象变量只针对单一网页的使用者,这也就是说各个机器之间的Session 的对象不尽相同。

例如用户A 和用户B,当用户A 访问该Web 应用时,应用程序可以显式的为该用户增加一个Session 值,同时用户B 访问该Web 应用时,应用程序同样可以为用户B 增加一个Session 值。

但是与Application 不同的是,用户A 无法存取用户B 的Session 值,用户B 也无法存取用户A 的Session 值。

Application 对象终止于IIS 服务停止,但是Session 对象变量终止于联机机器离线时,也就是说当网页使用者关闭浏览器或者网页使用者在页面进行的操作时间超过系统规定时,Session 对象将会自动注销。

1.Session 对象的特性Session 对象常用的属性有:IsNewSession:如果用户访问页面时是创建新会话,则此属性将返回true,否则将返回false。

TimeOut:传回或设置Session 对象变量的有效时间,如果在有效时间内有没有任何客户端动作,则会自动注销。

注意:如果不设置TimeOut 属性,则系统默认的超时时间为20 分钟。

Session 对象常用的方法有:Add:创建一个Session 对象。

Abandon:该方法用来结束当前会话并清除对话中的所有信息,如果用户重新访问页面,则可以创建新会话。

Clear:此方法将清除全部的Session 对象变量,但不结束会话。

注意:Session 对象可以不需要Add 方法进行创建,直接使用Session[“变量名”]=变量值的语法也可以进行Session 对象的创建。

2.Session 对象的使用Session 对象可以使用于安全性相比之下较高的场合,例如后台登录。

在后台登录的制作过程中,管理员拥有一定的操作时间,而如果管理员在这段时间不进行任何操作的话,为了保证安全性,后台将自动注销,如果管理员需要再次进行操作,则需要再次登录。

在管理员登录时,如果登录成功,则需要给管理员一个Session 对象,示例代码如下所示。

protected void Button1_Click(object sender, EventArgs e){Session["admin"] = "guojing"; //新增Session对象Response.Redirect("Session.aspx"); //页面跳转}当管理员单击注销按钮时,则会注销Session 对象并提示再次登录,示例代码如下所示。

protected void Button2_Click(object sender, EventArgs e){Session.Clear(); // 删除所有Session 对象Response.Redirect("Session.aspx");}在Page_Load 方法中,可以判断是否已经存在Session 对象,如果存在Session 对象,则说明管理员当前的权限是正常的,而如果不存在Session 对象,则说明当前管理员的权限可能是错误的,或者是非法用户正在访问该页面,示例代码如下所示。

protected void Page_Load(object sender, EventArgs e){if (Session["admin"] != null) // 如果Session[“admin”]不为空{if (String.IsNullOrEmpty(Session["admin"].ToString())) //则判断是否为空字符串{Button1.Visible = true; //显式登录控件Button2.Visible = false; //隐藏注销控件//Response.Redirect("admin_login.aspx"); //跳转到登录页面}else{Button1.Visible = false; //显式注销控件Button2.Visible = true; //隐藏注销控件}}}上述代码当管理员没有登录时,则会出现登录按钮,如果登录了,存在Session 对象,则登录按钮被隐藏,只显示注销按钮。

其HTML 代码如下所示。

<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="登录" /><asp:Button ID="Button2" runat="server" onclick="Button2_Click" Text="注销" />当再次单击【注销】按钮时则会清空Session 对象,再次返回登录。

Cookie状态对象Session 对象能够保存用户信息,但是Session 对象并不能够持久的保存用户信息,当用户在限定时间内没有任何操作时,用户的Session 对象将被注销和清除,在持久化保存用户信息时,Session 对象并不适用。

1.Cookie 对象使用Cookie 对象能够持久化的保存用户信息,相比于Session 对象和Application 对象而言,Cookie 对象保存在客户端,而Session 对象和Application 对象保存在服务器端,所以Cookie 对象能够长期保存。

Web 应用程序可以通过获取客户端的Cookie 的值来判断用户的身份来进行认证。

相关文档
最新文档