session对象的使用

制作人:全心全意

  session在网络中被称为会话。由于HTTP协议是一种无状态协议,也就是当一个客户向服务器发出请求,服务器接收请求,并返回响应后,该连接就结束了,而服务器并不保存相关的信息。为了弥补这一缺点,HTTP协议提供了session。通过session可以在应用程序的Web页面间进行跳转时,保存用户的状态,使整个用户会话一直存在下去,知道关闭浏览器。但是,如果在一个会话中,客户端长时间不向服务器发出请求,session对象就会自动消失。这个时间取决于服务器,例如,Tomcat服务器默认为30分钟。不过这个时间可以通过编写程序进行修改。

  • 创建及获取客户端的会话

  setAttribute()方法:将信息保存在session范围内

  session.setAttribute(String name, Object obj)

    参数说明:

      name:用于指定作用域在session范围内的变量名

      obj:保存在session范围内的对象

   

  getAttribute()方法:获取保存在session范围内的信息

  session.getAttribute(String name)

    参数说明:

      name:指定保存在session范围内的关键字

    说明:getAttribute()方法的返回值是Object类型,如果将获取到的信息赋值给String类型的变量,则需要进行强制类型转换或是调用其toString()方法。

  • 移除session中指定的对象

  session.removeAttribute()方法:移除存储在session会话中的对象

  session.removeAttribute(String name)

    参数说明:

      name:指定作用域在session范围内的变量名。一定要保证该变量在session范围内有效,否则将抛出异常。

  • 销毁session

  session.invalidate()方法:销毁session

  session.invalidate()

    说明:session对象被销毁后,将不可以再使用该session对象了。如果在session被销毁后,再调用session对象的任何方法,都将报出Session already invalidated异常。

  • session会话超时管理

  在应用session对象时应该注意session的生命周期。一般来说,session的生命周期在20~30分钟之间。当用户首次访问时将产生一个新的会话,以后服务器就可以记住这个会话状态,当会话生命周期超时时,或者服务器端强制使会话失效时,这个session就不能使用了。在开发程序时应该考虑到用户访问网站时可能发生的各种情况,例如用户登录网站后在session的有效期外进行相应的操作,用户会看到一张错误页面。这样的现象时不允许发生的。为了避免这种情况的发生,在开发系统时应该对session的有效性进行判断。

  session.getLastAccessedTime():返回客户端最后一次与会话相关联的请求时间

  session.getMaxInactiveInterval():以秒为单位返回一个会话内两个请求最大时间间隔

  session.setMaxInactiveInterval():以秒为单位设置session的有效时间

  session.getLastAccessedTime();session.getMaxInactiveInterval();session.setMaxInactiveInterval(int arg);

  参数说明:

    arg:seesion的有效期(单位:秒)

  • session对象的应用实例

  index.jsp:提供用户输入用户名的文本框,并提交到session.jsp页面中

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>session对象的使用-index.jsp</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="session.jsp"><div align="center"><table width="28%" border="0"><tr><td width="36%"><div align="center">您的名字是:</div></td><td width="64%"><label><div align="center"><input type="text" name="name" /></div></label></td></tr><tr><td colspan="2"><label><div align="center"><input type="submit" name="Submit" value="提交" /></div></label></td></tr>  </table></div>
</form>
</body>
</html>

session.jsp:将用户名保存到session中,并提供用户输入最喜欢去的地方的文本框

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>session对象的使用-session.jsp</title>
</head>
<body><%String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"utf-8");      //获取用户填写的用户名session.setAttribute("name", name);               //将用户名保存到session对象中%><div align="center"><form id="form1" name="form1" method="post" action="result.jsp"><table width="28%" border="0"><tr><td>您的名字是:</td><td><%=name %></td></tr><tr><td>您最喜欢去的地方是:</td><td><label><input type="text" name="address" /></label></td></tr><tr><td colspan="2"><label><div align="center"><input type="submit" name="Submit" value="提交" /></div></label></td></tr></table></form></div>
</body>
</html>

result.jsp:获取session中的用户名对象,再获取session.jsp页面提交过来的最喜欢去的地方,并在页面中显示出来

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>session对象的使用-result.jsp</title>
</head>
<body><%String name = (String)session.getAttribute("name");     //获取保存在session范围内的对象String solution = new String(request.getParameter("address").getBytes("ISO-8859-1"),"utf-8");//获取用户输入的最喜欢去的地方%><form id="form1" name="form1" method="post" action=""><table width="28%" border="0"><tr><td colspan="2"><div align="center"><strong>显示答案</strong></div></td></tr><tr><td width="49%"><div align="left">您的名字是:</div></td><td width="51%"><label><div align="left"><%=name %></div></label></td></tr><tr><td><label><div align="left">您最喜欢去的地方是:</div></label></td><td><div align="left"><%=solution %></div></td></tr></table></form>
</body>
</html>

转载于:https://www.cnblogs.com/zhangquan-yw/p/9612641.html

session对象的使用相关推荐

  1. 基于mybatis声明SQL Session对象

    /*声明SQL Session对象*/ SqlSession sqlSession = new SqlSessionFactoryBuilder().build(Resources.getResour ...

  2. session对象运行机制

    当你看到 "会话" 这个词的时候,你会怎么理解呢?是交流.对话的意思吗?那毫无疑问绝对是的啦,只不过那是传统意义上的,或者说是日常生活中的意思,在计算机科学领域,它的意思就要引申一 ...

  3. Session对象失效的客户端解决方法

    ASP(Active Server Pages)技术的Session对象用于存储用户在对话期间的私有信息.当前用户的Session对象中定义的变量和对象能在页面之间共享,但是不能为应用中其他用户所访问 ...

  4. python中requests库的用途-python中requests库session对象的妙用详解

    在进行接口测试的时候,我们会调用多个接口发出多个请求,在这些请求中有时候需要保持一些共用的数据,例如cookies信息. 妙用1 requests库的session对象能够帮我们跨请求保持某些参数,也 ...

  5. java中的session对象,Java对象中Response与session对象的方法是什么?

    广州达内Java培训小编了解到Java对象种类很多,有的小伙伴最不清楚的就是Response与session对象的方法,下面小编就搜集Response与session对象的方法供大家阅读.当一个客户首 ...

  6. session 对象的简单实例

    一个session对象的简单实例: 1.登录界面:使用简单的html表单提交界面. <%@ page language="java" contentType="te ...

  7. Grails通过sessionId获取session对象

    Grails通过sessionId获取session对象 思路:自定义一个类用来监听session,所有session存入map中,sessionId作为读取的key 创建监听类 SessionTra ...

  8. Session对象的生命周期

    创建:第一次执行request.getSession()时创建 销毁: 1)服务器(非正常)关闭时: 2)session 过期/失效(默认30分钟),也可以在工程的web.xml中进行配置改变时间: ...

  9. 应用session对象实现用户登录

    session在网罗中被称为会话,由于HTTP协议是一种无状态协议,也就是当一个客户向服务器发出请求时,服务器接受请求并返回响应后,该连接结束,而服务器并不保存相关的信息.所以HTTP提供了sessi ...

  10. Session对象的应用

    Session应用 可以使用于安全性相比之下较高的场合,比如后台登录. 在管理员登录时,如果登录成功,则需要给管理员创建一个Session对象. 在后台登录中,管理员拥有一定的操作时间,如果在这段时间 ...

最新文章

  1. Percona-Server-5.5.30安装
  2. 机器学习在生物信息(如DNA比对等方面)的研究现状是怎样的?
  3. emmet快速缩写展开的基本写法与心得
  4. 驱动华为_实锤!华为成立驱动芯片部门,OLED驱动芯片正流片
  5. ZedGraph的曲线的LineItem对象的Tag属性存储信息进而在鼠标悬浮时进行显示
  6. SharePoint2007 配置MOSS基于AD的Forms验证
  7. Ubuntu终极指南
  8. 大数据为什么需要安全分析
  9. adb 模拟器安装apk
  10. app逆向 安卓开发环境搭建
  11. Linux安装fcitx输入法
  12. 介绍两种简单实用的信道编码——CRC校验和汉明码
  13. 优秀java程序员必须具备的技术技能
  14. 北京高考零分作文(结尾太搞了)终于懂了什么叫笑喷了
  15. 长春市计算机职业技术学校,长春职业技术学校
  16. 关于移动端IOS input弹起键盘时,引起高度问题
  17. 语音质量检测 梅尔倒谱失真MCD
  18. Java中当被除数比除数小时为什么计算结果都为0?
  19. 【软件问题】解决WPS中的VBA支持库安装问题(亲测可用)
  20. dedecms如何自定义分页样式

热门文章

  1. vant popover offset
  2. Vue「二」—— vue 基本使用 、vue 指令 、vue 过滤器
  3. 模拟电路--可编程数字稳压电源的设计
  4. OpenCV3学习(12.5) opencv实现粒子滤波目标跟踪
  5. springboot学习过程中遇到的错误集
  6. 大专学计算机应用难吗,上了两年技校,专业是计算机应用,什么也没学到。现在想在去上个大专。学什么专业好呢。?...
  7. linux硬盘系统安装教程图解,Linux操作系统添加安装新硬盘的方法图解
  8. display:none和visibility:hidden区别
  9. Apache 工作模式配置优化
  10. Linux修改root用户登录密码