`
yw404109794
  • 浏览: 4383 次
  • 性别: Icon_minigender_1
  • 来自: 冥王星
文章分类
社区版块
存档分类
最新评论

servlet生命周期 和 Hibernate持久化的状态

阅读更多
<一>servlet 生命周期:

1,加载和实例化:当Web Clinet请求一个url的时候,Tomcat就会通过用户请求url获得相应的serlvet ,然后对servlet进行加载和实例化(创建一个HttpservletRequest和HttpServletResponse对象并将clinet的请求信息封装到这个对象中!



2,初始化,通过配置文件,获得该servlet的初始配置信息!对于没个Servlet周期 init();方法只会被调用一次!而且初始化方法出错将会抛出 ServletException的异常!



3,请求处理。servlet容器 调用 HttpServlet的 service 方法,并吧 HttpservletRequest和HttpServletResponse参数传递给 HttpServlet!然后HttpServlet将会调用HttpservletRequest获得相关信息,紧接着便会调用HttpServletResponse方法生成数据源并发给WebClinet。当 service方法执行出错时将会抛出ServletException异常或者UnavailableException异常。如果UnavailableException异常指示了该实例永久不可用,Servlet容器将调用实例的destroy()方法,释放该实例。此后对该实例的任何请求,都将收到容器发送的HTTP 404(请求的资源不可用)响应。如果UnavailableException异常指示了该实例暂时不可用,那么在暂时不可用的时间段内,对该实例的任何请求,都将收到容器发送的HTTP 503(服务器暂时忙,不能处理请求)响应。

4,服务终止,当Tomcat检测到一个Servlet实例被移去的时候,便会调用destory();方法,便于java垃圾回收装置,释放资源。



<二>hibernate 持久态的三个状态:

hibernate的持久态分为三个状态,瞬时态(Transient),持久态(Persistent),和游离态(Detached)。瞬时态和游离态又成为(VO),持久态称为(PO)。

瞬时态:

瞬时对象在内存孤立存在,它是携带信息的载体,不和数据库的数据有任何关联关系,在Hibernate中,可通过session的save()或saveOrUpdate()方法将瞬时对象与数据库相关联,并将数据对应的插入数据库中,此时该瞬时对象转变成持久化对象。

持久态:

    处于该状态的对象在数据库中具有对应的记录,并拥有一个持久化标识。如果是用hibernate的delete()方法,对应的持久对象就变成瞬时对象,因数据库中的对应数据已被删除,该对象不再与数据库的记录关联。

     当一个session执行close()或clear()、evict()之后,持久对象变成脱管对象,此时持久对象会变成脱管对象,此时该对象虽然具有数据库识别值,但它已不在HIbernate持久层的管理之下。

        1. 和session实例关联;

       2. 在数据库中有与之关联的记录。

游离态:

当与某持久对象关联的session被关闭后,该持久对象转变为脱管对象。当脱管对象被重新关联到session上时(如调用update()、saveOrUpdate()等方法时),并再次转变成持久对象。

       1. 本质上与瞬时对象相同,在没有任何变量引用它时,JVM会在适当的时候将它回收;

        2.   比瞬时对象多了一个数据库记录标识值。





分享到:
评论

相关推荐

    jsp servlet struts hibernate spring

    - **生命周期**:Servlet的生命周期包括加载、初始化(jspInit)、服务(jspService)和销毁(jspDestroy)四个阶段。jspInit只在Servlet实例化时执行一次,jspService处理每个请求,jspDestroy在Servlet卸载时调用...

    java web整合开发王者归来光盘代码-第七章 servlet章节 (JSP+Servlet+Struts+Hibernate+Spring)

    在本章中,你可能会学习到Servlet生命周期、初始化、服务、销毁方法,以及如何通过`doGet`和`doPost`方法处理HTTP请求。 2. **JSP**:JSP是Servlet的简化版,它允许开发者用HTML模板和Java代码混合编写页面。JSP...

    Servlet-Struts-Hibernate笔记分享

    Servlet生命周期包括加载、初始化、服务、销毁等阶段,通过`service()`方法处理请求,并通过`doGet()`和`doPost()`处理GET和POST请求。Servlet可以与JSP(JavaServer Pages)配合使用,将业务逻辑与展示逻辑分离。 ...

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    HIBERNATE - 符合Java习惯的关系数据库持久化 Hibernate参考文档 3.2 -------------------------------------------------------------------------------- 目录 前言 1. 翻译说明 2. 版权声明 1. Hibernate...

    零基础学Java[1].Web开发:JSP.Servlet.Struts.Spring.Hibernate.Ajax(PPT).rar

    了解Servlet生命周期、服务方法以及如何在Web应用中部署Servlet至关重要。 【JavaBean技术基础知识】是Java Web中用于封装业务逻辑的对象。它们遵循一定的规范,具有可重用性,可以方便地在多个页面间共享数据。...

    SSH(Servlet+Spring+Hibernate)整合所需jar包

    Spring在SSH中作为核心容器,管理其他组件的生命周期和依赖关系,关键的jar包包括: - `spring-beans.jar`:包含Bean工厂和依赖注入功能。 - `spring-context.jar`:提供上下文支持,包括AOP、事件、国际化等。 - `...

    Java.Web开发JSP.Servlet.Struts.Spring.Hibernate.Ajax.rar

    Spring的核心是依赖注入(DI)和面向切面编程(AOP),提供了一种轻量级的容器来管理应用组件的生命周期和依赖关系。Spring MVC是Spring框架的一部分,专门用于构建Web应用,它简化了视图、控制器和模型的交互。 5....

    飞思J2EE源代码(Servlet+Struts+Spring+Hibernate)

    学习Servlet,你需要理解请求和响应对象,以及Servlet生命周期的关键方法如init、service和destroy。 Struts是一个流行的MVC(Model-View-Controller)框架,它简化了Web应用的开发。在Struts中,Action类作为控制...

    jdbc_hibernate_servlet_串讲

    Servlet生命周期包括初始化、服务、销毁等阶段,可以通过重写相应的方法来实现自定义逻辑。Servlet通常与JSP(JavaServer Pages)一起使用,JSP负责视图展示,而Servlet则处理业务逻辑。 在提供的压缩包文件中,...

    电子相册系统 Spring+hibernate+servlet+jquery

    二、Hibernate持久化框架 Hibernate是Java领域中流行的ORM(Object-Relational Mapping)工具,它简化了数据库操作,将数据库中的数据映射为Java对象,使得开发者可以使用面向对象的方式来处理数据。在电子相册系统...

    java面试题(包括ejb,hibernate,java,jsp,servlet,js等)

    - Servlet生命周期:init、service、destroy方法的作用。 - 请求和响应对象的使用,以及HTTP方法GET和POST的区别。 - Filter和Listener的概念,以及如何配置和使用它们。 - Servlet 3.0的新特性,如注解配置和...

    J2EE中文API(Servlet)

    6. **Filter和Listener**:Servlet API还提供了Filter和Listener接口,用于在请求到达Servlet之前进行预处理(Filter),或者监听Servlet生命周期及Web应用中的各种事件(Listener)。 7. **MVC模式**:Servlet常与...

    Struts2、Spring和Hibernate应用实例

    Spring作为核心,负责管理Struts2和Hibernate的生命周期,提供事务管理,而Struts2负责HTTP请求的处理和视图的展示,Hibernate则专注于数据的持久化。这样的组合可以有效地实现业务逻辑、数据访问和用户界面的解耦,...

    servlet与spring整合例子

    Spring提供了对各种持久化技术(如JDBC、Hibernate、MyBatis等)的集成,使得在Servlet中操作数据库变得简单。我们可以在Spring配置文件中定义数据源和DAO Bean,然后在Servlet中通过依赖注入获取这些DAO对象,执行...

    hibernate3.2 jar 包

    6. **实体生命周期管理**:Hibernate 管理对象的生命周期,包括瞬时态(Transient)、持久态(Persistent)、托管态(Managed)和游离态(Detached)。这些状态反映了对象在Session中的生存状态,有助于理解对象如何...

    酒店管理小系统jsp/servlet

    Servlet生命周期包括加载、初始化、服务、销毁四个阶段,它们是Web应用程序中的核心组件。 在【酒店管理小系统jsp/servlet】项目中,JSP和Servlet协同工作,实现了以下功能: 1. 用户登录和注册:用户可以通过输入...

    纯Servlet web项目无框架

    通过这样的实践,开发者可以更好地理解Web应用的生命周期、请求-响应模型,以及Java和HTTP协议之间的关系。然而,这种开发方式效率较低,且不利于代码维护和扩展,因此在实际项目中,一般会选用成熟的框架来提高开发...

    Servlet实现简单购物车

    在Web应用中,Servlet通常与Web容器(如Tomcat)一起工作,容器负责管理Servlet的生命周期,包括加载、初始化、服务和销毁等阶段。 在实现购物车功能时,Servlet通常会与HTML、CSS和JavaScript配合,形成前后端交互...

    strutst+hibernate+spring学习ppt

    例如,Spring可以管理Action类的生命周期,而Hibernate可以通过Spring的数据访问抽象层来简化数据库操作。此外,Spring的AOP功能可用于事务管理和日志记录等横切关注点。 【学习目标】 通过学习Struts+Hibernate+...

    hibernate_3.5.6_中文帮助文档(有目录)_Final.pdf

    文档还提到了上下文相关的会话(Contextual Session),这涉及到Hibernate会话的生命周期管理。配置部分详细介绍了如何编程配置Hibernate、获取SessionFactory实例、JDBC连接、可选配置属性以及如何在J2EE应用程序...

Global site tag (gtag.js) - Google Analytics