javaweb(Session Cookie服务器与客户端存储)

javaweb(Session Cookie服务器与客户端存储)

本期内容

Session的概念

Session在网络中被称为会话(服务端存储 session中的数据占运行内存)。
由于HTTP协议(超文本传输协议)是一种无状态协议,也就是当一个客户向服务器发出请求,服务器接收请求,并返回响应后,该连接就结束了,而服务器并不保存相关的信息。
为了弥补这一缺点,HTTP协议提供了Session。

通过Session可以在应用程序的WEB页面间进行跳转时,保存用户的状态,使整个用户会话一直存在下去,直到关闭浏览器。

如图:

在这里插入图片描述

Session对象的常用方法
类型方法名称说 明
voidsetAttribute(String key,Object value)key/value的形式保存对象值
ObjectgetAttribute(String key)通过key获取对象值
intgetMaxInactiveInterval**()**获取session的有效非活动时间,以秒为单位
StringgetId**()**获取session对象的编号
voidinvalidate()设置session对象失效
使用session实现访问控制

在控制页面获取用户请求的登录信息进行验证

//登录处理页面的代码片断
<%
if (rs.next()) {  //如果是已注册用户
session.setAttribute("LOGINED_USER", loginedUser);
response.sendRedirect("index.jsp");
} else {
response.sendRedirect("login.html");
}
%>
//在session中存放用户登录信息
如何在登入界面增加登入验证
<%
User user = (User) session.getAttribute("LOGINED_USER");
if (user == null) {
response.sendRedirect("login.jsp");
}
%>
//如果session中不存在该用户的登录信息,转入登录页面
Cookie
什么是Cookie

Cookie是Web服务器保存在客户端的一系列文本信息

Cookie的作用
  • 对特定对象的追踪

  • 统计网页浏览次数

  • 简化登录

    安全性能
  • 容易信息泄露

Cookie的语法

导入包

import="javax.servlet.http.Cookie"

创建Cookie

Cookie newCookie=new Cookie("parameter", "value");
  • parameter:用于代表cookie的名称(key)
  • value:用于表示当前key名称所对应的值

写入Cookie

response.addCookie(newCookie)
设置Cookie属性的常用方法
类型方法名称说 明
voidsetMaxAge(int expiry)设置Cookie的有效期,以秒为单位
voidsetValue(String value)Cookie创建后,对Cookie进行赋值
StringgetName**()**获取Cookie的名称
StringgetValue**()**获取Cookie的值
StringgetMaxAge**()**获取Cookie的有效时间,以秒为单位

用户登录成功后,将用户信息保存到Cookie中,在页面读取Cookie并显示

-----从登录验证页面表单中获取用户名------
<%
       String username=reqeust.getParameter("username");
//以key/value的形式创建Cookie
Cookie uname=new Cookie("uname", username); //创建Cookie,使用response的addCookie方法保存Cookie
response.addCookie(uname);
%>
-----在显示页面显示用户名---------------
<%//获取请求中的Cookie,以数组方式保存
       Cookie cookies[ ]=request.getCookies();//使用reqeust获取Cookie数组,通过cookie的名称获取对应的内容
       //循环遍历数组,得到key=uname的Cookie
      for(int i=0;i<cookies.length;i++){
              Cookie ucookie=cookies[i];
              if(ucookie.getName().equals("uname”));//判断Cookie的名称
 %>
    欢迎你:<%=ucookie.getValue() %>//获取key对应的value,输出显示
    <%  }  %>

Cookie与session的比较

session是在服务器端保存用户信息,Cookie是在客户端保存用户信息
session中保存的是对象,Cookie保存的是字符串
session随会话结束而关闭,Cookie可以长期保存在客户端
Cookie通常用于保存不重要的用户信息,重要的信息使用session保存

谢谢浏览 点个关注再走吧!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冷亿!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值