美文网首页
Servlet-05(session)

Servlet-05(session)

作者: 西谷haul | 来源:发表于2020-05-14 16:49 被阅读0次

1.Cookie的限制

a.可以被用户禁止
b.不安全
    对于敏感数据,一定要加密。
c.只能存放少量数据
    大约4k左右
d.数量也有限制
    浏览器大约能存放几百个cookie
e.只能存放字符串

2. Session(会话)

(1)什么是Session?

服务器端为了保存用户的状态而创建的一个特殊的对象(即session对象)。

    当浏览器第一次访问服务器时,服务器会创建session对象(该
对象有一个唯一的id,一般称之为sessionId),接下来服务器会将
sessionId以cookie的方式发送给浏览器。
    当浏览器再次访问服务器时,会将sessionId发送过来,服务器
就可以依据sessionId找到对应的sessinon对象。

(2)如何获得session对象?

1)HttpSession s = request.getSession(boolean flag);

HttpSession是一个接口。
a.当flag为true时,先查看请求当中有没有sessionId,如果没有,就会
创建一个session对象。如果有sessionId,就会依据sessionId去查找
对应的session对象,如果找到了就返回该对象,找不到则会创建一个
新的session对象。
b.当flag为false时,先查看请求当中有没有sessionId,如果没有,返回
null。如果有sessionId,就会依据sessionId去查找对应的session对象,
如果找到了就返回该对象,找不到,返回null。
image.png

2)HttpSession s = request.getSession();

等价于 request.getSession(true);

(3)常用方法

session.setAttribute(String name,Object obj);
Object session.getAttribute(String name);
session.removeAttribute(String name);
image.png

(4)session超时

a.什么是session超时?

服务器会将空闲时间过长的session对象删除掉。
注:为了节省内存空间。大部分服务器默认的超时时间长度为30分钟。

b.如何修改超时时间长度?

方式一 修改web.xml
    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>
方式二 编程的方式
    session.setMaxInactiveInterval(int seconds);
    设置两次请求之间最大的时间间隔

(5)删除session

session.invalidate(); 

(6)session验证

step1. 登录成功之后,在session对象上绑订一些数据,比如

session.setAttribute("user",user);

step2.当用户访问需要保护的资源时,进行session验证,比如

Object obj = session.getAttribute("user");
if(obj == null){
    //没有登录
    response.sendRedirect("login.jsp");
}

image.png

(7)比较session与cookie

session相对于cookie,优点:安全、可以存放大量的数据、支持更丰富的 数据类型。缺点是session会占用服务器端的内存空间,如果session对象 过多,会占用过多的内存空间。

相关文章

  • Servlet-05(session)

    1.Cookie的限制 2. Session(会话) (1)什么是Session? 服务器端为了保存用户的状态而创...

  • session 学习总结

    参考: Session Handling Session Functions (一)session session...

  • cookie,session使用

    session使用: //启动session的初始化 session_start(); //注册session变量...

  • PHP的session机制

    PHP机制使用session 开启session --- session_start()...

  • vue中sessionStorage使用

    设置session,setItem 获取session,getItem 删除session , removeItem

  • 在三个jsp页面中传递信息

    通过session 不通过session 通过hidden --能不用session就不用session --hi...

  • PHP中的session操作

    一、session的基本操作 session详解 二、session过期时间 三、session存储到Redis ...

  • Flask框架3

    自定义响应 Session session依赖cookie,cookie里面有session_id session...

  • laravel中session的使用

    可以使用request的session方法调用session 通过session类获取session: 使用use...

  • PHP session

    使用session 在PHP中使用session非常简单,先执行session_start方法开启session,...

网友评论

      本文标题:Servlet-05(session)

      本文链接:https://www.haomeiwen.com/subject/jctxohtx.html