【Jsp精品源码栏目提醒】:网学会员--在 Jsp精品源码编辑为广大网友搜集整理了:java三大框架学习方法 - 软件工程绩等信息,祝愿广大网友取得需要的信息,参考学习。
一、三大框架简介1、SpringSpring 是一个解决了许多在 J2EE 开发中常见的问题的强大框架。
Spring 提供了管理业务对象的一致方法并且鼓励了注入对接口编程而不是对类编程的良好习惯。
Spring 的架构基础是基于使用 JavaBean 属性的 Inversion of Control 容器。
然而,这仅仅是完整图景中的一部分:Spring 在使用 IoC 容器作为构建完关注所有架构层的完整解决方案方面是独一无二的。
Spring 提供了唯一的数据访问抽象,包括简单和有效率的 JDBC 框架,极大的改进了效率并且减少了可能的错误。
Spring 的数据访问架构还集成了 Hibernate 和其他 O/R mapping 解决方案。
Spring 还提供了唯一的事务管理抽象,它能够在各种底层事务管理技术,例如 JTA或者 JDBC 事务提供一个一致的编程模型。
Spring 提供了一个用标准 Java 语言编写的 AOP框架,它给 POJOs 提供了声明式的事务管理和其他企业事务--如果你需要--还能实现你自己的 aspects。
这个框架足够强大,使得应用程序能够抛开 EJB 的复杂性,同时享受着和传统EJB 相关的关键服务。
Spring 还提供了可以和 IoC 容器集成的强大而灵活的 MVC Web 框架。
2、STRUCTSStruts 是一个基于 Sun J2EE 平台的 MVC 框架,主要是采用 Servlet 和
JSP 技术来实现的。
由于 Struts 能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。
Struts 把 Servlet、
JSP、自定义标签和信息资源message resources整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套 MVC 模式,极大的节省了时间,所以说 Struts 是一个非常不错的应用框架。
3、HibernateHibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate 可以应用在任何使用 JDBC 的场合,既可以在 Java 的客户端程序实用,也可以在 Servlet/
JSP 的 Web应用中使用,最具革命意义的是,Hibernate 可以在应用 EJB 的 J2EE 架构中取代 CMP,完成数据持久化的重任。
JAVA 三大框架用来做 WEB 应用。
struts 主要负责表示层的显示spring 利用它的 IOC 和 AOP 来处理控制业务(负责对数据库的操作)hibernate 主要是数据的持久化到数据库在用
jsp 的 servlet 做网页开发的时候有个 web.xml 的映射文件, 里面有个 mapping 的标签就是用来做文件映射的。
当你在浏览器上输入 URL 地址的时候,文件就会根据你写的名称对应到一个 java 文件,根据 java 文件里编写的内容显示在浏览器上,就是一个网页,所以网页名字是随便写的,随便起的名字,不管你起的是.php .
jsp .do 还是其他的什么都对应这个 java 文件,这个 java 文件里的代码进行什么操作就干什么,显示一句话还是连接数据库还是跳转到其他页面等等,这个 java 文件把数据进行封装起到安全和便于管理的作用。
其实这个 java 文件编译过来是.class 的一个字节码文件,没有那么一个类似 html 嵌入标签和代码的网页文件。
他与
jsp文件区别就是
jsp 把代码嵌入到 html 标签中。
还有 servlet 或者 struts 中 html 表单的 action 中的提交名称对应一个 java 文件,struts 一般是.do的,都和上面一样是映射。
Struts 是 web 开发框架负责表单提交)(相当于电脑显卡)Hibernate 负责对数据库的操作(相当于电脑 CPU)Spring 相当于一个主板(将显卡和 CPU 组装在一起二、Spring 框架编辑本段定义 要谈 Spring 的历史,就要先谈 J2EE。
J2EE 应用程序的广泛实现是在 1999 年和 2000 年开始的, 它的出现带来了诸如事务管理之类的核心中间层概念的标准化, 但是在实践中并没有获得绝对的成功,因为开发效率,开发难度和实际的性能都令人失望。
曾经使用过EJB 开发 J2EE 应用的人,一定知道,在 EJB 开始的学习和应用非常的艰苦,很多东西都不能一下子就很容易的理解。
EJB 要严格地继承各种不同类型的接口,类似的或者重复的代码大量存在。
而配置也是复杂和单调,同样使用 JNDI 进行对象查找的代码也是单调而枯燥。
虽然有一些开发工作随着 xdoclet 的出现,而有所缓解,但是学习 EJB 的高昂代价,和极低的开发效率,极高的资源消耗,都造成了 EJB 的使用困难。
而 Spring 出现的初衷就是为了解决类似的这些问题。
Spring 的一个最大的目的就是使 J2EE 开发更加容易。
同时,Spring 之所以与 Struts、Hibernate 等单层框架不同, 是因为 Spring 致力于提供一个以统一的、高效的方式构造整个应用, 并且可以将单层框架以最佳的组合揉和在一起建立一个连贯的体系。
可以说 Spring 是一个提供了更完善开发环境的一个框架,可以为 POJOPlain Old JavaObject对象提供企业级的服务。
Spring 的形成,最初来自 Rod Jahnson 所著的一本很有影响力的书籍《Expert One-on-One J2EE Design and Development》 ,就是在这本书中第一次出现了 Spring 的一些核心思想, 该书出版于 2002 年。
另外一本书 《Expert One-on-One J2EE ,Development without EJB》 更进一步阐述了在不使用 EJB 开发 J2EE 企业级应用的一些设计思想和具体的做法。
有时间了可以详细的研读一下。
Spring 的初衷: 1、J2EE 开始应该更加简单。
2、使用接口而不是使用类,是更好的编程习惯。
Spring 将使用接口的复杂度几乎降低到了零。
3、为 JavaBean 提供了一个更好的应用配置框架。
4、更多地强调面向对象的设计,而不是现行的技术如 J2EE。
5、尽量减少不必要的异常捕捉。
6、使应用程序更加容易测试。
Spring 的目标: 1、可以令人方便愉快的使用 Spring。
2、应用程序代码并不依赖于 Spring APIs。
3、Spring 不和现有的解决方案竞争,而是致力于将它们融合在一起。
Spring 的基本组成: 1、最完善的轻量级核心框架。
2、通用的事务管理抽象层。
3、JDBC 抽象层。
4、集成了 Toplink Hibernate JDO and iBATIS SQL Maps。
5、AOP 功能。
6、灵活的 MVC Web 应用框架。
编辑本段 Spring 框架简介 Spring: Spring 是一个开源框架,它由 Rod Johnson 创建。
它是为了解决企业应用开发的复杂性而创建的。
Spring 使用基本的 JavaBean 来完成以前只可能由 EJB 完成的事情。
然而,Spring 的用途不仅限于服务器端的开发。
从简单性、可测试性和松耦合的角度而言,任何 Java 应用都可以从 Spring 中受益。
简单来说,Spring 是一个轻量级的控制反转IoC和面向切面AOP的容器框架。
轻量——从大小与开销两方面而言 Spring 都是轻量的。
完整的 Spring 框架可以在一个大小只有 1MB 多的 JAR 文件里发布。
并且 Spring 所需的处理开销也是微不足道的。
此外,Spring 是非侵入式的:典型地,Spring 应用中的对象不依赖于 Spring 的特定类。
控制反转——Spring 通过一种称作控制反转(IoC)的技术促进了松耦合。
当应用了 IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。
你可以认为 IoC 与 JNDI 相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。
面向切面——Spring 提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。
应用对象只实现它们应该做的——完成业务逻辑——仅此而已。
它们并不负责 (甚至是意识) 其它的系统级关注点,例如日志或事务支持。
容器——Spring 包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个 bean 如何被创建——基于一个可配置原型(prototype),你的 bean 可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。
然而,Spring 不应该被混同于传统的重量级的 EJB 容器,它们经常是庞大与笨重的,难以使用。
框架——Spring 可以将简单的组件配置、组合成 在为复杂的应用。
Spring 中, 应用对象被声明式地组合, 典型地是在一个 XML 文件里。
Spring也提供了很多基础功能(事务管理、持久化框架集成等等) ,将应用逻辑的开发留给了你。
所有 Spring 的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。
它们也为 Spring 中的各种模块提供了基础支持。
编辑本段 Spring 框架的 7 个模块 1、核心容器 2、Spring 上下文 3、Spring AOP 4、Spring DAO 5、Spring ORM 6、Spring Web 模块 7、Spring MVC 框架三、struts 使用 Struts 的目的是为了帮助我们减少在运用 MVC 设计模型来开发 Webstruts 是开源软件。
应用的时间。
如果我们想混合使用 Servlets 和
JSP 的优点来建立可扩展的应用,struts 是一个不错的选择。
目录Struts 1.x 的起源流程框架结构图综述Model 部分View 部分Controller 组件框架压缩包内容体系结构框架中的组件Struts 配置文件ActionServlet 类ActionMapping 类Action 类ActionForm 类ActionForward 类错误处理OGNLStruts2Struts 1.x 的起源流程框架结构图 综述Model 部分View 部分Controller 组件框架 压缩包内容体系结构框架中的组件Struts 配置文件ActionServlet 类ActionMapping 类Action 类ActionForm 类ActionForward 类错误处理OGNLStruts2展开 编辑本段 Struts 1.x 的起源 Struts 最早是作为 Apache Jakarta 项目的组成部分,项目的创立者希望通过对该项目的研究,改进和提高 JavaServer Pages 、Servlet、标签库以及面向对象的技术水准。
Struts 这个名字来源于在建 struts筑和旧式飞机中使用的支持金属架。
这个框架之所以叫quotStrutsquot,是为了提醒我们记住那些支撑我们房屋,建筑,桥梁,甚至我们踩高跷时候的基础支撑。
这也是一个解释 Struts 在开发 Web 应用程序中所扮演的角色的精彩描述。
当建立一个物理建筑时,建筑工程师使用支柱为建筑的每一层提供支持。
同样,软件工程师使用 Struts 为业务应用的每一层提供支持。
它的目的是为了帮助我们减少在运用 MVC 设计模型来开发 Web 应用的时间。
我们仍然需要学习和应用该架构,不过它将可以完成其中一些繁重的工作。
如果想混合使用 Servlets 和
JSP 的优点来建立可扩展的应用,Struts 是一个不错的选择。
早期 Smalltalk 程序语言便采用了 MVCModel-View -Controller 模式 Patterns 以增加程序代码弹性, MVC 模式将程序代码整理切割为三部份,Model 部分是业务与应用领域 Business domain 相关逻辑、管理状态之对象,Controller 部分接收来自 View 所输入的资料并与 Model 部分互动,struts1是业务流程控制 Flow Control 之处, View 部分则负责展现资料、 接收使用者输入资料。
在 Java 应用中,JFC/Swing、AWT、
JSP 皆是可用作 View 之技术规格,而 JavaBean 与Enterprise JavaBean 规格则可用于 Model 程序代码,一旦应用程序以 MVC 模式加以适当(的)分割,Model 部分程序代码可在不同使用者接口外观(的)应用程序中重复使用。
随着
JSP 与 Servlet 技术大量应用于以 Web 为基础(的)应用程序,Java 开发人员群体认为应以较佳之模式以提升 Web 应用程序之可维护性与重复使用性。
早期
JSP 规格书中曾列举两种可行之
JSP 应用架构, 分别为 Model1 与 Model 2。
在 Model 1 架构中,
JSP 直接处理 Web 浏览器送来之请求 Request , 并辅以 JavaBean 处理应用相关逻辑。
Model 1 架构单纯编写比较容易, 但在 Model 1 中
JSP 可能同时肩负 View 与 Controller 角色, 两类程序代码有可能混杂而不易维护。
而 Model 2 中将 Servlet 纳入架构中扮演前端 Controller 角色,将 Web 浏览器送出之请求集中送至 Servlet ,Servlet 可集中管理使用者登入、权限控制、多国语言转换等前置处理,再视需求转向给对应之
JSP 处理。
Model 2 中采用了较佳之 MVC 模式, 但增加了编写复杂度。
Struts 是 Apache 软件基金下 Jakarta 项目的一部 除分。
Struts 之外, 还有其他成功的开源产品, 包括 Tomcat, Ant 和 Velocity。
2000 年 CraigR. McClanahan 先生贡献了他编写 struts的
JSP Model 2 架构之 Application Framework 原始程序代码给 Apache 基金会, 成为 ApacheJakarta 计划 Struts Framework 前身。
开始的代码基础从 2000 年 5 月开始开发,直到 有2001 年 6 月, 版本发布。
30 多个开发者参与进来, 1.0 并有数千人参与到讨论组中。
Struts代码基础由一个志愿的 Commnitter 团队来管理。
到 2002 年,Struts 小组共有 9 个志愿Commnitter。
Struts 框架的主要架构设计和开发者是 Craig R.McClanahan。
Craig 也是Tomcat 4 的主要架构师,以及 Java Web Services Developer Pack 的主要架构师和实现者。
他现在是 Sun 的 JavaServer Faces JSR-127 以及 J2EE 平台的 Web 层架构的规范领导。
Craig R.McClanahan 先生是 JCP ExpertGroup 成员之一,曾参与
JSP 规格制定与 Tomcat 4 之编写,因此 Struts Framework 广受 Java 开发人员群体所重视。
Borland 自 2002 年底开始于开发工具 JBuilder 中支持 Struts Framework。
Struts 是 Apache 基金会 Jakarta 项目组的一个Open Source 项目,它采用 MVC 模式,能够很好地帮助 java 开发者利用 J2EE 开发 Web 应用。
和其他的 java 架构一样,Struts 也是面向对象设计,将 MVC 模式quot分离显示逻辑和业务逻辑quot的能力发挥得淋漓尽致。
Structs 框架的核心是一个弹性 struts的控制层,基于如 Java Servlets,JavaBeans,ResourceBundles 与 XML 等标准技术,以及Jakarta Commons 的一些类库。
Struts 由一组相互协作的类(组件) 、Servlet 以及
jsp tag lib组成。
基于 struts 构架的 web 应用程序基本上符合
JSP Model2 的设计标准,可以说是一个传统 MVC 设计模式的一种变化类型。
Struts 最早是作为 Apache Jakarta 项目的组成部分问世运作。
项目的创立者希望通过对该项目的研究, 改进和提高 Java Server Pages、 Servlet、标签库以及面向对象的技术水准。
Struts 跟 Tomcat、Turbine 等诸多 Apache 项目一样,是开源软件,这是它的一大优点,使开发者能更深入的了解其内部实现机制。
除此之外,Struts 的优点主要集中体现在两个方面:Taglib 和页面导航。
Taglib 是 Struts 的标记库,灵活运用,能大大提高开发效率。
另外,就目前国内的
JSP 开发者而言,除了使用
JSP 自带的常用标记外,很少开发自己的标记,或许 Struts 是一个很好的起点。
关于页面导航,我认为那将是今后的一个发展方向,事实上,这样做, struts使系统的脉络更加清晰。
通过一个配置文件,即可把握整个系统各部分之间的联系,这对于后期的维护有着莫大的好处。
尤其是当另一批开发者接手这个项目时, 这种优势体现得更加明显。
MVC 即 Model-View-Controller 的缩写,是一种常用的设计模式。
MVC 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化。
Struts 是 MVC 的一种实现,它将 Servlet 和
JSP 标记(属于 J2EE 规范)用作实现的一部分。
Struts 继承了 MVC的各项特性,并根据 J2EE 的特点,做了相应的变化与扩展。
说明:加粗括号内为修改的内容编辑本段流程 服务器启动后, 根据 web.xml 加载 ActionServlet 读取 struts-config.xml 文件内容到内存。
以登录为例:第一次进 login.
jsp 会先实例化 Form、 把默认值String 默认为空字符串整形默认为 0赋给表单元素。
输入用户名密码提交表单、提交到 action 属性的 login.do通过ActionServlet 读 struts-config.xml 文件找到 action 下的 path 属性找到.do通过 name 属性找form-beans 中的 form-bean 的 name 属性得到 ActionForm 的包名类名先实例化 form, 把表单的值填充给 form,调用 form 的 validate 方法验证、ActionErrors 返回 null 表示验证通过,否则失败返回 input 指定的页面.验证通过会实例化 Action,执行 Action 的 excute 方法。
编辑本段框架结构图综述 相应框架结构如图: Struts 对 Model,View 和 Controller 都提供了对应的组件。
在上图中,ActionServlet,这个类是 Struts 的核心控制器,负责拦截来自用户的请求。
Action,这个类通常由用户提供,该控制器负责接收来自 ActionServlet 的请求,并根据该请求调用模型的业务逻辑方法处理请求,并将处理结果返回给
JSP 页面显示。
Model 部分 由 JavaBean 组成,ActionForm 用于封装用户的请求参数,封装成 ActionForm 对象,该对象被 ActionServlet 转发给 Action,Action 根据 ActionForm 里面的请求参数处理用户的请求。
JavaBean 则封装了底层的业务逻辑,包括数据库访问等。
View 部分 该部分采用
JSP 实现。
Struts 提供了丰富的标签库,通过标签库可以减少脚本的使用,自定义的标签库可以实现与 Model 的有效交互,并增加了现实功能。
对应上图的
JSP部分。
Controller 组件 Controller 组件有两个部分组成——系统核心控制器,业务逻辑控制器。
系统核心控制器,对应上图的 ActionServlet。
该控制器由 Struts 框架提供,继承 HttpServlet 类,因此可以配置成标注的 Servlet。
该控制器负责拦截所有的 HTTP 请求,然后根据用户请求决定是否要转给业务逻辑控制器。
业务逻辑控制器,负责处理用户请求,本身不具备处理能力,而是调用 Model 来完成处理。
对应 Action 部分。
编辑本段框架 struts 框架具有组件的模块化,灵活性和重用性的优点,同时简化了基于 MVC 的 web应用程序的开发。
struts 可以清晰地区分控制,事务逻辑和外观,从而简化了开发应用程序的过程。
struts 提供的类使得开发工作更加简单,这些类包括: a. 控制程序流程的类 b. 实现和执行程序事务逻辑的类 c. 自定义的标记库使得创建和验证 HTML表单更加容易四、HibernateHibernate百科名片Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate 可以应用在任何使用 JDBC 的场合,既可以在 Java 的客户端程序使用,也可以在 Servlet/
JSP 的 Web应用中使用,最具革命意义的是,Hibernate 可以在应用 EJB 的 J2EE 架构中取代 CMP,完成数据持久化的重任。
目录核心接口简介 Session 接口SessionFactory 接口Configuration 接口Transaction 接口Query 和 Criteria 接口Hibernate 版本更新情况Hibernate 主键介绍 AssignedHiloIncrementIdentitySequenceNativeUUIDForeign GUIDHibernate
源码中几个包的作用简要介绍缓存管理一级缓存和二级缓存的比较一级缓存的管理二级缓存的管理Hibernate 与延迟加载在 Web 层进行延迟加载核心接口简介 Session 接口SessionFactory 接口Configuration 接口Transaction 接口Query 和 Criteria 接口Hibernate 版本更新情况Hibernate 主键介绍 AssignedHiloIncrementIdentitySequenceNativeUUIDForeign GUIDHibernate
源码中几个包的作用简要介绍缓存管理 一级缓存和二级缓存的比较一级缓存的管理二级缓存的管理Hibernate 与延迟加载在 Web 层进行延迟加载展开 编辑本段核心接口简介 Hibernate 的核心接口一共有 5 个,分别为:Session、SessionFactory、Transaction、Query和 Configuration。
这 5 个核心接口在任何开发中都会用到。
通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。
下面对这五个核心接口分别加以介绍。
Session 接口 Session 接口负责执行被持久化对象的 CRUD 操作CRUD 的任务是完成与数据库的交流,包含了很多常见的 SQL 语句。
。
但需要注意的是 Session 对象是非线程安全的。
同时,Hibernate 的 session 不同于
JSP 应用中的 HttpSession。
这里当使用 session 这个术语时,其实指的是 Hibernate 中的 session,而以后会将 HttpSession 对象称为用户 session。
SessionFactory 接口 .