JavaWeb初识 Session绘画跟踪技术-阿里云开发者社区

开发者社区> 死瘦宅> 正文

JavaWeb初识 Session绘画跟踪技术

简介: Cookie绘画跟踪技术有一个很大缺点:信息不安全信息是暴露在服务器中的怎么办所以就有了Session技术Session技术的好处:隐藏用户信息,信息不再存储在客户端而是在服务器,客户端拿到只是服务器对象识别的唯一钥匙,在返回和钥匙相对应Session对象信息,可以有大的信息量(集合存储),因为信息都在服务器存储客户端只是拿着钥匙去调用而已。
+关注继续查看

Cookie绘画跟踪技术有一个很大缺点:信息不安全信息是暴露在服务器中的怎么办所以就有了Session技术
Session技术的好处:隐藏用户信息,信息不再存储在客户端而是在服务器,客户端拿到只是服务器对象识别的唯一钥匙,在返回和钥匙相对应Session对象信息,可以有大的信息量(集合存储),因为信息都在服务器存储客户端只是拿着钥匙去调用而已。
Session的调用过程:他有个Session池里面存放着Session对象
第一步先问你又没有Session对象 第一次肯定没有啊
第二步 知道你没有 咋办,创建呗,创建好了Session并将对象放到池子里,返回这个Session对象的唯一Session对象Id
第三步:拿到返回的Session对象ID通过Cookie将他存储在服务器上

那往后的调用就是
通过Cookie拿着你的Session_ID去找Session对象
2J_48IAI6_0V_MT6R_2M_O
X_UDURJC_C840NBMIF_CDJ

Session设置
Session 在服务器的生命周期是 无任何访问 30分钟外销毁
Session 可以设置有效时间,但是别设置很长时间 应该会占内存的

    <session-timeout>1</session-timeout><!--时间设置-->
    <cookie-config>
        <name>KAIGEJSESSIONID</name><Session JSESSIONID设置>
    </cookie-config>
</session-config>
 

JSESSIONID 是使用Cookie技术存放在浏览器内存中(存放的是唯一钥匙,而不是值)

创建SESSION
request.getSession(boolean); 自己选套餐
true 创建session的时候问浏览器是否给了jsession_id

   没有创建一个Session对象 仍进池里,生产出JSESSION_ID、返回Session对象
   有 去session对象池里抓对象 1.没有抓到 就创建一个
                                            2.有抓到就更新存活时间 返回对象

false 创建session的时候问浏览器是否给了jsessionid

    没有 就返回null
    有 就去池里抓1.有对象就更新存活世界并返回session对象
                        2.没有 返回null   

request.getSession();(有就抓没有就创建)

演示代码

public class B extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        resp.setContentType("text/html;charset=UTF-8");
        HttpSession httpSession = req.getSession();
        httpSession.setAttribute("name", "嘻嘻哈哈");
        RequestDispatcher requestDispatcher = req.getRequestDispatcher("a");
        requestDispatcher.forward(req, resp);
    }
}

@WebServlet("/a")
public class A extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        HttpSession httpSession = req.getSession();
        System.out.println(httpSession.getAttribute("name"));
    }
}

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
SAP Cloud for Customer(C4C)前台显示的数据是如何从后台读取的
SAP Cloud for Customer(C4C)前台显示的数据是如何从后台读取的
4 0
ESC使用体验
我是大学生,我对ESC很感兴趣
3 0
成员变量和方法的区别?
成员变量有两种: 实例变量 类变量(也称静态变量,静态域)
6 0
mysql索引总结
mysql主要有两大索引:B-tree索引和hash索引,注意一个误区,这个不叫B减树,B树就是B树,B+树就是B+树,没有所谓的B减树,那个 - 是连接符号
4 0
京东二面:Redis如何避免内存耗尽
redis的数据都是存放在内存中,而对于服务器来说内存是很有限的,那我们应该如何避免内存耗尽呢?
7 0
使用Jsoup过滤HTML标签,获取纯文本
使用Jsoup过滤HTML标签,获取纯文本
3 0
推荐,Java Emoji Converter(Emoji表情转换工具)
推荐,Java Emoji Converter(Emoji表情转换工具)
4 0
SysML 2019论文解读:视频分析系统的提升
SysML 2019 已于 3 月 31 日-4 月 2 日在斯坦福成功举办,本文将解读两篇在高效视频分析方面的研究。
4 0
什么是回表查询
这种查询就必须先在索引文件中找到name为小张的索引节点,很明显这个节点里面只有id,因为这张表只有主键索引,再根据id去数据文件查找具体数据
5 0
WebShop WebSocket server 和WebSocket客户端的一对多关系维护
WebShop WebSocket server 和WebSocket客户端的一对多关系维护
4 0
+关注
54
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载