jspsession.setAt...
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
jspsession.setAt...
⽬录
Session简单介绍
Session和Cookie的主要区别
基本语法
1,对于值类型的变量,Session中保存的是值类型的拷贝
2,对于引⽤类型的变量,Session中保存的是引⽤
3,Session周期
4,调⽤Session
5,Session数据有效期
6,Session的保存
在JSP中
Session简单介绍
在WEB开发中,服务器可以为每个⽤户浏览器创建⼀个会话对象(session对象),注意:⼀个浏览器独占⼀个session 对象(默认情况下)。
因此,在需要保存⽤户数据时,服务器程序可以把⽤户数据写到⽤户浏览器独占的session中,当⽤户使⽤浏览器访问其它程序时,其它程序可以从⽤户的session中取出该⽤户的数据,为⽤户服务。
Session和Cookie的主要区别
Cookie是把⽤户的数据写给⽤户的浏览器。
Session技术把⽤户的数据写到⽤户独占的session中。
Session对象由服务器创建,开发⼈员可以调⽤request对象的getSession⽅法得到session对象。
基本语法
1,对于值类型的变量,Session中保存的是值类型的拷贝
Session["__test0"] = 1;
int i = (int)Session["__test0"]+1;
int j = (int)Session["__test0"];
结果:
i=2,j=1
2,对于引⽤类型的变量,Session中保存的是引⽤
CDACommon cda = new CDACommon();
Session["__test"] = cda.GetDataSet("select top 1 * from tb_customer");
DataSet ds = (DataSet)Session["__test"];
DataSet ds2 = (DataSet)Session["__test"];
ds.Tables[0].Rows[0][0]="9999";
结果:
ds.Tables[0].Rows[0][0]=="9999"
ds2.Tables[0].Rows[0][0]=="9999";
3,Session周期
新的浏览器窗⼝启动后,开始⼀个新的Session,触发Global的Session_Start的调⽤,从第⼀个浏览器窗⼝打开的浏览器窗⼝不启动新的Session。
Session过期后,执⾏页⾯的提交也会触发Session_Start,等于是新的⼀个Session。
4,调⽤Session
对于Web Service,每个⽅法的调⽤都会启动⼀个Session,可以⽤下⾯的⽅法来使多个调⽤在同⼀个Session⾥ CWSSyscfg cwsCfg = new CWSSyscfg(); cwsCfg.CookieContainer = new System Net.CookieContainer(); CWSSyscfg是⼀个Web Service类,Web Service的给代理类设置CookieContainer属性,只要多个代理的CookieContainer属性是相同的值,则对这些Web Service的调⽤在同⼀个Session。
可以⽤单例模式来实现。
5,Session数据有效期
只要页⾯有提交活动,则Session的所有项都会保持,页⾯在20分钟(默认配置)内没有任何提交活动时Session会失效。
Session内存储的多个数据项是整体失效的。
6,Session的保存
在Session中如果保存的是⾮序列化的类⽐如DataView,在⽤SQLServer保存Session的模式下,⽆法使⽤。
查看⼀个类是否是序列化的⽅法是,需看是否⽤[Serializable]来标记了该类.
在JSP中
Jsp的session是使⽤bean的⼀个⽣存期限,⼀般为page,session意思是在这个⽤户没有离开⽹站之前⼀直有效,如果⽆法判断⽤户何时离开,⼀般依据系统设定,tomcat中设定为30分钟.
JSP使⽤⼀个叫HttpSession的对象实现同样的功能。
HTTPSession 是⼀个建⽴在cookies 和URL-rewriting上的⾼质量的界⾯。
Session的信息保存在服务器端,Session的id保存在客户机的cookie中。
事实上,在许多服务器上,如果浏览器⽀持的话它们就使⽤cookies,但是如果不⽀持或废除了的话就⾃动转化为URL-rewriting,session⾃动为每个流程提供了⽅便地存储信息的⽅法。
Httpsession具有如下API:
getId 此⽅法返回唯⼀的标识,这些标识为每个session⽽产⽣。
当只有⼀个单⼀的值与⼀个session联合时,或当⽇志信息与先前的sessions有关时,它被当作键名⽤。
GetCreationTime 返回session被创建的时间。
最⼩单位为千分之⼀秒。
为得到⼀个对打印输出很有⽤的值,可将此值传给Date constructor 或者GregorianCalendar的⽅法setTimeInMillis.
GetLastAccessedTime 返回session最后被客户发送的时间。
最⼩单位为千分之⼀秒。
GetMaxInactiveInterval 返回总时间(秒),负值表⽰session永远不会超时。
getAttribute 取⼀个session相联系的信息。
(在jsp1.0中为 getValue)
Integer item = (Integer) session.getAttribute("item") //检索出session的值并转化为整型
setAttribute 提供⼀个关键词和⼀个值。
会替换掉任何以前的值。
(在jsp1.0中为putValue)
session.setAttribute("ItemValue", itemName); // ItemValue 必须不是must简单类型
在应⽤中使⽤最多的是getAttribute和setAttribute.现以⼀个简单的例⼦来说明session的应⽤,test1.jsp(信息写⼊session),test2.jsp(从session读出信息)。
test1.jsp
<HTML>
<HEAD>
<TITLE> Document </TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<%
session.setAttribute("str",new String(“this is test”));
%>
</BODY>
</HTML>
test2.jsp
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF">
<%
String ls_str=null;
ls_str=(String)session.getAttribute("str");
out.println(“从session⾥取出的值为:”+ls_str);
%>
</BODY>
</HTML>
到此这篇关于jsp session.setAttribute()和session.getAttribute()⽤法案例详解的⽂章就介绍到这了,更多相关jsp
session.setAttribute()和session.getAttribute()⽤法内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。