zoukankan      html  css  js  c++  java
  • Hibernate的session.load()和session.get()有什么分别?

    Get会发送查询语句提取数据,而load方法当对象使用时才去数据库查询。
    如果未能发现符合条件的记录,get方法返回null,而load方法会抛出一个ObjectNotFoundException
    Load方法可返回实体的代理类实例,而get方法永远直接返回实体类。
    load方法可以充分利用内部缓存和二级缓存中的现有数据,而get方法则仅仅在内部缓存中进行数据查找,如没有发现对应数据,将越过二级缓存,直接调用SQL完成数据读取。

    ★服务器如何判断HttpSession的唯一性?

    1.服务器创建HttpSession对象的时候,会为该对象生成一个唯一的ID值,用于区分不同用户的HttpSession对象.

    2.服务器响应客户端的时候,会将这个HttpSession的唯一的ID值,通过Cookie写回客户端.

    3.客户端再次请求这个域的时候,会将这个HttpSession的唯一的ID值发回给服务器.

    4.服务器拿到这个HttpSession的唯一的ID值,通过ID值找到对应的HttpSession对象.

    ★HttpSession什么情况下会被销毁?

    1. session.invalidate();

    代码执行: sessionMap.remove(session.getID());

    session.invalidate();只是将当前的Session对象从服务器的存储HttpSession对象的Map集合中删除引用,而当前的HttpSession对象还是存在,等待垃圾回收.

    2. session.getMaxInactiveInterval(),HttpSession对象的最大存活时间默认1800秒,即30分钟.

    当服务器检测到HttpSession已经超过最大存活时间,会将这个HttpSession对象销毁.

    在web.xml中配置:

    <session-config>

       <session-timeout>1</session-timeout> // 分钟

      </session-config>

    Java Program!
  • 相关阅读:
    HDU 5883 F
    关于codeblock 为什么不能调试
    Codeforces Round #378 (Div. 2) D. Kostya the Sculptor 分组 + 贪心
    51NOD 区间的价值 V2
    NYOJ 42 一笔画问题
    如何对二维字符数组进行排序
    hihoCoder 1383 : The Book List 北京网络赛
    利用IDA学习一个简单的安卓脱壳
    iOS APP可执行文件的组成
    Mac10.11 搭建php开发环境
  • 原文地址:https://www.cnblogs.com/programb/p/14068280.html
Copyright © 2011-2022 走看看