关于HttpSession 和 Hibernate框架中 session异同点的简单解析
快速理解:
HttpSession中的session是一个容器用来盛基于会话机制的信息。
比喻:我把钱放进银行的保险柜里。
解析:我的钱就是我的信息,ID等 银行的保险柜就是session容器。
Hibernate中的session是一个工具,用来操作数据库增删改查等,可以认为是一个持久化管理器。
比喻:我从东风货车生产商买了一辆货车,用这辆车操作张三家的钱,对钱进行操作,移除、添加等。
解析:货车生产商比喻为hibernate框架,货车是session ,张三家为数据库,钱便是信息,session对数据库中的信息进行增删改查等对数据持久化操作。
简单介绍
1、HttpSession( Javax.Servlet.http.HttpSession)
1、概念:HttpSession是Java平台对session机制的实现规范,所谓规范指接口,用来规范会话机制,Session本质是一个容器,用来装需要装的数据。
2、产生背景:HttpSession,见名知意 肯定和Http有关,Http是一种超文本传输协议,是用来约束两台计算机之间通信需要遵守的规范,那么Http有个缺点,无状态,所谓无状态是指不具备记忆功能,但是,各位 在J2EE开发中我们有很多需求需要web程序保持一种状态,或者说可以记录某些信息,进而带来更加高级的用户体验,所以, 产生了Cookie,是用来在客户浏览器上存储一些数据,但是 有很多信息我们不能保存在本地,很不安全,所以产生了Session保存在服务器端,当用户进行某种针对 cookie 和Session的操作时,服务器端会根据一种标识查到相对应的Session,这是Session的产生背景。
3、作用:记录或者存储一些用户信息在服务器端内存,由服务器端使web程序维护或者保持一种状态,在用户使用时会根据对应的信息和Cookie内容查找到对应的 Session,提高用户体验。
4、使用场景:J2EE的web程序开发中,即Jsp、Servlet中。
5、创建方法:
注意一点,session是由具体的容器自动产生的,容器像(Tomact等)
HttpSession session = request.getSession( );
常用方法:session.setAttribute(key,value) 存储数据,在另一个Jsp和Sevlet中通过 session.getAttribute(key);可以得到对应的Value值。
生命周期: 长时间不操作,自动结束或者销毁,操作其销毁的大部分取决于对应的容器。
2、Hibernate框架中的Session(Org.hibernate.Session)
1、概念: 此session可以理解为基于JDBC的connection 用来连接数据库的一个句柄对象(对象变量),也可以认为此Session为持久化管理器的一个类,它在整个框架中是一个核心。
1.1抽象概念简单分析:各位,我们考虑一下所谓的持久化,是不是指把数据存储起来,序列化到指定的文件或者数据库中不会随着各种周期消亡而消亡。简单讲,持久化管理器,指利用Session将数据进行增、删、改、查。Session恰恰有这些实例。
2、作用:主要功能是为映射实体类的实例提供创建,读取和删除操作,替代JDBC的繁琐操作。实例可能存在以下三种状态之一:Transient 瞬时态、Persistent 持久态、Detached 游离态。
3、举例:我从东风货车生产商(货车生产商为hibernate框架)买了一辆货车(Session),用这辆车操作张三家(张三家是数据库)的钱(钱是数据库中的信息),对钱进行操作,移除、添加等。
4、使用场景:Hibernate框架中用来操作数据库时
5、常用操作:
1、//由 Configuration对象读取映射文件中的配置信息
Configuration configuration = new Configuration().configure();
2、//由 Configuration对象创建一个SessionFactory对象
SessionFactory sessionFactory = configuration .buildSessionFactory();
3、//由SessionFactory打开一个Session会话
Session session = sessionFactory .openSession();
4、具体方法示例
(1)session.save();//保存,通过commit()提交事务后会执行 insert语句
(2)session.update()//修改 执行 update语句
(3)session.delete()//删除 执行 delete语句
(4)session.saveOrUpdate()//保存或者修改 如果该该条数据存在数据库中则进行修改,如果不存在则进行添加。
等等
总之:二者除了名字相同,没有其他关系。
关于HttpSession 和 Hibernate框架中 session异同点的简单解析的更多相关文章
- hibernate框架中注意的几个问题
使用hibernate框架中,session.createSQLQuery创建sql语句的时候遇到的问题 1. select e.id,d.id from emp e,dept d where e. ...
- laravel框架中Job和事件event的解析
本篇文章给大家带来的内容是关于laravel框架中Job和事件event的解析,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 在做项目的时候,一直对Job和Event有个疑惑.感觉两 ...
- Hibernate框架中的HibernateUtil
对于刚学习三层框架的人来说.每个配置文件和每个类.以及功能来说都非常新奇,时常就忘记了相关类的功能. 在这里建议编程就是要多加练习,才干熟能生巧. 这里说一下HibernateUtil类,在使用Hib ...
- JavaWeb_(Spring框架)在Struts+Hibernate框架中引入Spring框架
spring的功能:简单来说就是帮我们new对象,什么时候new对象好,什么时候销毁对象. 在MySQL中添加spring数据库,添加user表,并添加一条用户数据 使用struts + hibern ...
- thinkphp框架中session常识
在看别人代码时候,发现他,在tp框架中使用session没有些session_start();然后我去查看了手册初始化设置方法 无需手动调用,在App类的初始化工作结束后会自动调用,通常项目只需要配置 ...
- TP框架中session操作
TP中session操作 查看代码,OMG! 不应该是这样的
- 在Hibernate框架中详谈一级缓存
在学习Hibernate的过程中我们肯定会碰上一个名词---缓存,一直都听说缓存机制是Hibernate中的一个难点,它分为好几种,有一级缓存,二级缓存和查询缓存 今天呢,我就跟大家分享分享我所理解的 ...
- yii2.0框架中session与cookie的用法
我们在开发项目中南面使用到session给和cookie,那么在yii中有他自己的规则 如下案例: session使用 function actionS1(){ echo $t ...
- 在hibernate框架中配置显示sql语句
使用Hibernate的框架开发时,可在Hibernate.cfg.xml中加上 <property name="hibernate.show_sql">true< ...
随机推荐
- Linux Spi驱动移植小结
2012-01-07 22:21:29 效果图: 理论学习后,主要是linux中spi子系统设备框架的了解后,主控制器与设备分离的思想,那么我要开始动手了. 1, make menuconfig添加 ...
- mysql在Windows下使用mysqldump命令手动备份数据库和自动备份数据库
手动备份: cmd控制台: 先进入mysql所在的bin目录下,如:cd C:\Program Files\MySQL\MySQL Server 5.5\bin mysqldump -u root - ...
- 目标URL存在跨站漏洞和目标URL存在http host头攻击漏洞处理方案
若需要学习技术文档共享(请关注群公告的内容)/讨论问题 请入QQ群:668345923 :若无法入群,请在您浏览文章下方留言,至于答复,这个看情况了 目录 HTTP协议详解 引言 一.HTTP协议详解 ...
- Spring:容器基本用法
bean是Spring 最核心的东西,打个比方,假设Spring是一个水桶,那么bean就是水桶里的水,水桶离开水后,就没啥作用了.我们先来看一下bean的定义: public class Perso ...
- 在sql中select的执行顺序
<select{[distinct |all] columns |*}> [into table_name] <from {tables |views | other select} ...
- 【js】箭头函数与普通函数的异同
普通函数在es5中就有了,箭头函数是es6中出现的函数形式,当然也可以继续用es5写法. 普通函数大家知道: 形式基本一致 来看看箭头函数: 开发时根据实际情况可以省略一些东西 单条处理可以省略ret ...
- Solr中在使用过程中遇到的"与"和"或"的问题
在进行全文检索的过程中,如果使用三星和手机,两个一块进行搜索的时候,关于三星的会被搜索出来,关于手机的信息也会被搜索出来,然后,需要将一些配置文件进行配置, <!-- DEPRECATED: T ...
- 使用 Nginx 内置 $http_user_agent 来区分( 电脑 pc、手机 mobile、平板 pad )端的内容访问
location / { #pc端内容访问 set $flag "pc"; set $num 1; set $hua "${http_user_agent}"; ...
- JavaWeb案例:登陆和注册
mvc开发模式简介 M: Model模型 JavaBeanV:view视图 JSPC:Controller控制器 Servlet 其实就是JSP + Servlet + JavaBean上面的Java ...
- Ubuntu18.04安装SS(不是服务器端!!!)
终于下定决心把我1T的机械硬盘格式化了- -,分了100G装了Ubuntu 18.04,在安装shadowsocks的时候有些东西想记下来.shadowsocks目前在ubuntu上使用的主要有两个版 ...