当前位置:   article > 正文

session对象_session 撖寡情

session 撖寡情

session介绍:
session是在服务器进行数据存储的对象,访问速度满、效率低但是安全
Session对象代表一次会话,当客户端打开浏览器到关闭浏览器这期间的操作称为一次会话

Session的创建时间:当request调用getSession()时调用,同时将Session存入服务器的内存

Session的传递过程:当创建Session后,服务器会给该Session分配一个ID,同时会将该ID存入Cookie中,Cookie的名字为JSESSIONID,然后将此Cookie发送至客户端,当客户端继续发送请求时会附加上此Cookie,当服务器端继续调用getSession()方法时,会根据ID在服务器内存中查找此ID,如果找到了,那么就回调用此Session,如果没有找到,那么会新建一个Session对象

Session的销毁时机:当服务器退出时销毁,或者Session超时后销毁,或者Session调用invalidate()方法

默认情况下,当客户端退出浏览器后,Session的ID在Cookid中也会消失,当客户端开启第二次会话时,已经找不到上一次会话的Session对象了,但是服务器内存中还保留着上一次会话产生的Session,默认情况下Session在服务器内存中驻留30分钟。

session对象:

方法名描述
setAttribute(key,val)设置键值对
getAttribute(key)通过键获取值
getId()获取session的id
setMaxInactiveInterval(time)设置session的过期时间[单位:秒](tomcat中默认配置的过期时间是30分钟)
removeAttribute(key)从session中移除指定的key

session实现页面访问:
login.jsp

<%
String errMsg = "";
//登录页面可能会被打开多次(用户想要切换账户)
Object object = session.getAttribute("errMsg");
if(object != null){//从登录失败后跳转过来的
  errMsg = (String)object;
  //移除session中的key
  session.removeAttribute("errMsg");
}
%>
<p style="color:red;"><%=errMsg%></p>
<form action="control.jsp" method="post">
  <input type="text" name="uname" placeholder="请输入用户名">
  <input type="password" name="pwd" placeholder="请输入密码">
  <input type="submit" value="登录">
</form>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

control.jsp

<%
//设置请求编码格式
request.setCharacterEncoding("utf-8");
//获取表单中的参数
String uname = request.getParameter("uname");
String pwd = request.getParameter("pwd");
//对用户名及密码进行验证
if("admin".equals(uname) && "admin".equals(pwd)){
  session.setAttribute("uname",uname);
  //设置session的失效事件(单位:秒)
  session.setMaxInactiveInterval(5);
  //登录成功后跳转到个人中心
  response.sendRedirect("person.jsp");
}else{
  //存储一个错误信息
  session.setAttribute("errMsg","用户名密码错误");
  //回到登录页面,并提示错误信息
  response.sendRedirect("login.jsp");
}
%>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

个人中心

<%
Object object = session.getAttribute("uname");
if(object == null){//代表用户未登录,跳转到登录页面
  response.sendRedirect("login.jsp");
  return;
}
%>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

Session和Cookie的主要区别:
cookie是在本地进行数据存储的对象,访问速度快、效率高但是不安全

  • Cookie是把用户的数据写给用户的浏览器。
  • Session技术把用户的数据写到用户独占的session中。
  • Session对象由服务器创建,开发人员可以调用request对象的getSession方法得到session对象。

Cookie生效时间

1.值为正数时,代表了cookie的存活时长(秒为单位)

2.值为0时,代表立即清除cookie

3.值为负数时,代表cookie的生命周期与当前会话一致

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/149367
推荐阅读
相关标签
  

闽ICP备14008679号