JavaEE学习17之session对象

session对象

  • session是与请求有关的会话对象,是java.servlet.http.HttpSession对象,用于保存和存储页面的请求信息。*
  • session对象是由服务器自动创建的,与客户请求相关的对象,服务器为每一个用户都生成可一个session对象,用于保存该用户的信息。跟踪该用户的操作状况。
  • session内部对象使用的是map对象来保存数据,也就是说它保存的数据是key/value键值对的这种方式。value不仅仅可以保存字符串对象,也可以保存复杂的对象类型。

常用方法

setAttribute()和getAttribute()

session对象的setAttribute()方法可实现将信息保存在session范围内,而通过getAttribute()方法可以将获取保存在session范围内的信息。
代码示例:

  1. index.jsp页面
 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>

<form action="show.jsp" method="post">
    <br>姓名:<input type="text" name="name" value=""><br>
    出生日期:<input type="text" name="birthday" value=""><br>
    邮箱地址:<input type="text" name="mail" value=""><br>
    <input type="submit" value="提交"><br>
</form>
<%
    String sessionMessage="session练习";
    session.setAttribute("message",sessionMessage);
%>
</body>
</html>

此处代码使用了以往案例的部分,在该页面中创建了一个表单,当点击的时候,就会跳转到show.jsp页面。同时创建了一个message属性,将sessionMessage中的内容(session练习)存储在message中。
2. show.jsp页面

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<%
    String message=(String)session.getAttribute("message"); //利用String()强制将map类型转换成字符串。
    out.println("保存在session的值为"+message);
%>
</body>
</html>

这是一个空内容 的html网页,但是创建了一个message对象去存储session.getAttribute()获取message里面的内容,最后利用out.println()输出该内容。
3. 运行结果

在这里插入图片描述
在这里插入图片描述
分析:我们在首页index.jsp中写入了一个属性,在第二个网页show.jsp读出了这个属性。也就是说我在同一个网站之下不同的页面之间可以共享这个index.jsp中的属性。这个就是session的特点,所以session经常保存用户的账户名。比如说在淘宝网买东西的时候,我们买了一个东西的时候,再去点击购物车的那个网页。购物车需要判断当前是那个用户。此时肯定不能在去让用户输入一遍密码了吧。我们直接在session中读我们这个账户名就可以。

removeAttribute()和session.invalidate()

  • removeAttribute(String key)用来移除绑定对象,于request的效果方法是一致的,将key直接方法里面,会直接将这个属性抹掉。我们再次读取该值的时候是一个null值。
  • session.invalidate()用来销毁session。session对象一旦销毁,后面在也无法调用该对象的方法时,都将会抛出一个异常,应为session对象已经销毁了。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值