在Servlet中如何获取Session对象?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Servlet中如何获取Session对象?相关的知识,希望对你有一定的参考价值。
,在调用的时候直接在jsp或者servlet里面使用session.getAttribute('name',id)取得属性,当然需要在用户登录或者网页加载的时候进行一次初始化,给他一个属性。然后就可以在不同的servlet中直接调用。 参考技术A Session session=req.getSession();就这一句话就行了,剩下的容器都帮你做完了。
session是在服务器端的,靠的sessionID来识别。 参考技术B String usercode = (String)request.getSession().getAttribute("usercode");本回答被提问者采纳 参考技术C HttpSession session = request.getSession(); 参考技术D String str=""+request.getSession().getAttribute("name");
Servlet - Session相关
/* 1. 作用: 解决了一个用户的不同请求的数据共享问题 2. 原理: 用户第一次访问服务器, 服务器会创建一个Session对象给此用户, 并将该Session对象的JSESSIONID使用Cookie技术存储到浏览器中, 保证用户的其他请求能够获取到同一个Session对象, 也就保证了同一个用户的不同请求能够获取到共享数据 3. 特点: 存储在服务器端, 由服务器进行创建, 依赖Cookie技术 4. 使用: // 创建和获取Session对象 HttpSession session = req.getSession(); 如果请求中拥有Session的标识符, 也就是JSESSIONID, 则返回对应的Session对象 如果请求中没有Session的标识符, 则创建新的Session对象, 并将其JSESSIONID封装成Cookie对象存储到浏览器的内存中, 如果Session对象失效了, 也会重新创建一个Session对象 注意: JSESSIONID存储在了Cookie的临时存储空间中, 浏览器关闭即失效 // 设置Session的存储时间, int值为多少秒 session.setMaxInactiveInterval(int); Session的默认存储时间位30分钟 在指定的时间内, Session对象没有被使用, 则销毁, 如果使用了, 则重新计时 // 强制Session对象失效 session.invalidate(); // 存储数据 session.setAttribute("key", "value"); // 获取数据 session.getAttribute("key"); 存储的动作和取出的动作可以发生在不同的请求中, 但存储要先于取出执行 5. Session失效处理 将用户请求中的JSESSIONID和后台获取到的Session对象的JSESSIONID进行比对, 如果一致, 则Session没有失效, 如果不一致, 则说明了Session对象失效了, 这时可以重定向到登录页面, 让用户重新登录 */
以上是关于在Servlet中如何获取Session对象?的主要内容,如果未能解决你的问题,请参考以下文章
jsp内置对象pageContext如何在Servlet中获取值