广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >jsp session.setAttribute()和session.getAttribute()用法案例详解
  • 816
分享到

jsp session.setAttribute()和session.getAttribute()用法案例详解

2024-04-02 19:04:59 816人浏览 薄情痞子
摘要

目录Session简单介绍Session和Cookie的主要区别基本语法1,对于值类型的变量,Session中保存的是值类型的拷贝2,对于引用类型的变量,Session中保存的是引用

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()用法内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: jsp session.setAttribute()和session.getAttribute()用法案例详解

本文链接: https://www.lsjlt.com/news/133545.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • jsp session.setAttribute()和session.getAttribute()用法案例详解
    目录Session简单介绍Session和Cookie的主要区别基本语法1,对于值类型的变量,Session中保存的是值类型的拷贝2,对于引用类型的变量,Session中保存的是引用...
    99+
    2022-11-12
  • jsp session.setAttribute()和session.getAttribute()用法
    `session.setAttribute()`方法用于将一个对象绑定到当前会话中,以便在整个会话过程中都可以访问该对象。该方法接受...
    99+
    2023-08-17
    jsp
  • session.setAttribute()和session.getAttribute()的简单理解和用法
    简单理解: B/S架构中,客户端与服务器连接,在服务端就会自动创建一个session对象. session.setAttribute(“username”,username); 是将username保存在session中,session的...
    99+
    2023-10-28
    servlet 服务器 java
  • jsp使用sessionScope获取session案例详解
    sessionScope整体的意思是获得存放在session.setAttrbute(key,value)的值即session.getAttribute(key); 场景:有些实体对...
    99+
    2022-11-12
  • CRITICAL_SECTION用法案例详解
          很多人对CRITICAL_SECTION的理解是错误的,认为CRITICAL_SECTION是锁定了资源,其实,CRITICAL_SECTI...
    99+
    2022-11-12
  • CSS hack用法案例详解
    之前一直很狭隘的对CSS hack持有偏见,觉得写得规范的代码不应该使用这些“邪门歪道”,可最近产品发布一个小问题却让我头疼了很久,最后查了一下资料,竟然使用CSS hack轻松解决...
    99+
    2022-11-12
  • Java Scanner用法案例详解
    一、Scanner类简介       Java 5添加了java.util.Scanner类,这是一个用于扫描输入文本的新的实用程序。它是以前...
    99+
    2022-11-12
  • Java SPI用法案例详解
     1.什么是SPI      SPI全称Service Provider Interface,是Java提供的一套用来被第三方实现或者扩展的接...
    99+
    2022-11-12
  • C++ cin.get用法案例详解
    与字符串输入一样,有时候使用 cin>> 读取字符也不会按我们想要的结果行事。 例如,因为它会忽略掉所有前导白色空格,所以使用 cin>> 就不可能仅输入一个...
    99+
    2022-11-12
  • C++ template用法案例详解
    有必要记一下这种一眼看上去就很高级的用法。还是编程不够多。都没用过这个。 相信用过c++的人,即便没用过,也肯定都听说过模板类这个词。嗨不巧了,今天讲的就是模板类。 模板是c++支持...
    99+
    2022-11-12
  • Java ConcurrentHashMap用法案例详解
    一、概念 哈希算法(hash algorithm):是一种将任意内容的输入转换成相同长度输出的加密方式,其输出被称为哈希值。 哈希表(hash table):根据设定的哈希函数H(k...
    99+
    2022-11-12
  • Vue.js $refs用法案例详解
    尽管有 prop 和事件,但是有时仍然需要在 JavaScript 中直接访问子组件。为此可以使用 ref 为子组件指定一个引用 ID。 ref 为子组件指定一个引用 ID,使父组件...
    99+
    2022-11-12
  • C# Console.WriteLine()用法案例详解
    以前用Console.WriteLine()的时候就只会用它直接输出string字符串,但后来发现它还有其它在有些场合下会十分方便的输出方法,这篇就记录一下这些方法的使用吧。 代码格...
    99+
    2022-11-12
  • C++ ostream用法案例详解
    概述 在 C++中,ostream表示输出流,英文”output stream“的简称。在 C++中常见的输出流对象就是标准输出流cout,很少自定义ostream的对象,更多的是直...
    99+
    2022-11-12
  • C# Request.Form用法案例详解
    在CS文件中获得对应页面中的下拉框DropDownList_sitebranch值可以有以下几种方法获得: siteInfo.FZJGID = DropDownList_site...
    99+
    2022-11-12
  • MFC LoadImage用法案例详解
    目录函数原型cxDesired, cyDesired:fuLoad:示例1.加载Icon资源2.加载本地磁盘的Icon文件3.加载本地磁盘的Bitmap文件函数原型 HANDLE...
    99+
    2022-11-12
  • Java ArrayAdapter用法案例详解
          拖延症最可怕的地方就是:就算自己这边没有拖延,但对方也会拖延,进而导致自己这边也开始拖延起来!现在这个项目我这边已经是完...
    99+
    2022-11-12
  • Java DatabaseMetaData用法案例详解
    目录一 . 得到这个对象的实例二. 方法getTables的用法三. 方法getColumns的用法四、方法getPrimaryKeys的用法五、方法.getTypeInfo()的用...
    99+
    2022-11-12
  • C# DialogResult用法案例详解
    在程序中,经常会弹出一个对话框来让用户填写一些信息,填写完成后,当用户点击“确定”按钮后,在主窗体中进行其他的处理。比如一个简单的例子,在主窗体中有一个菜单,是“增加用户”,当点击这...
    99+
    2022-11-12
  • C# pictureBox用法案例详解
    PictureBox 控件可以显示来自位图、图标或者元文件,以及来自增强的元文件、JPEG 或 GIF 文件的图形。如果控件不足以显示整幅图象,则裁剪图象以适应控件的大小。 本文利用...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作