`

JAVA三大框架SSH和MVC

阅读更多

Java—SSH(MVC)

JAVA三大框架的各自作用

 

hibernate是底层基于jdbc的orm(对象关系映射)持久化框架,即:表与类的映射,字段与属性的映射,记录与对象的映射 数据库模型 也就是Model;
struts提供的丰富标签是用于显示层View;同时struts也充当了实现Control的功能(不管是Struts1,还是Struts2),接收参数,视图分发。
Spring是用于降低层与层间耦合度的,就是所有的类都可以由spring统一创建,用时只需注入即可(IOC)


从功能上来说,hibernate为M,struts2 为V,也可以为C,spring可以为C。
但大多数项目中,hibernate为M,struts2 为V+C,spring用来帮助管理类以及实现一些业务无关功能,如日志记录等,大多数都是用struts来做C的。

一、Spring

Spring是一个解决了许多在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框架。

二、STRUCTS

Struts是一个基于Sun J2EE平台的MVC框架,主要是采用Servlet和JSP技术来实现的。由于Struts能充分满足应用开发的需求,简单易用,敏捷迅速,在过去的一年中颇受关注。Struts把Servlet、JSP、自定义标签和信息资源(message resources)整合到一个统一的框架中,开发人员利用其进行开发时不用再自己编码实现全套MVC模式,极大的节省了时间,所以说Struts是一个非常不错的应用框架。

三、Hibernate

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。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的,都和上面一样是映射。

 

1. 谈谈你mvc的理解
MVC是Model—View—Controler的简称。即模型—视图—控制器。MVC是一种设计模式,它强制性的把应用程序的输入、处理和输出分开。
MVC中的模型、视图、控制器它们分别担负着不同的任务。
视图: 视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并接受用户的输入。视图不进行任何业务逻辑处理。
模型: 模型表示业务数据和业务处理。相当于JavaBean。一个模型能为多个视图提供数据。这提高了应用程序的重用性
控制器: 当用户单击Web页面中的提交按钮时,控制器接受请求并调用相应的模型去处理请求。
然后根据处理的结果调用相应的视图来显示处理的结果。
MVC的处理过程:首先控制器接受用户的请求,调用相应的模型来进行业务处理,并返回数据给控制器。控制器调用相应的视图来显示处理的结果。并通过视图呈现给用户。

Struts
1. struts1.2和struts2.0的区别?如何控制两种框架中的单例模式?
struts1.2和struts2.0的对比
a、Action类:
struts1.2要求Action类继承一个基类。struts2.0 Action要求继承ActionSupport基类
b、线程模式
struts1.2 Action是单例模式的并且必须是线程安全的,因为仅有一个Action的实例来处理所有的请求。
单例策略限制了Struts1.2 Action能做的事情,并且开发时特别小心。Action资源必须是线程安全的或同步的。
struts2.0 Action为每一个请求产生一个实例,因此没有线程安全问题。
c、Servlet依赖
struts1.2 Action依赖于Servlet API,因为当一个Action被调用时HttpServletRequest和HttpServletResponse被传递给execut方法。
struts2.0 Action不依赖于容器,允许Action脱离容器单独测试。如果需要,Struts2 Action仍然可以访问初始的Request和Response。
但是,其他的元素减少或者消除了直接访问HttpServletRequest和HttpServletResponse的必要性。
d、可测性
测试struts1.2 Action的一个主要问题是execute方法暴露了Servlet API(这使得测试要依赖于容器)。一个第三方扩展:struts TestCase
提供了一套struts1.2的模拟对象来进行测试。
Struts2.0 Action可以通过初始化、设置属性、调用方法来测试,“依赖注入”也使得测试更容易。

2. 项目中为什么使用SSH
1. 使用Struts是因为struts是基于MVC模式的,很好的将应用程序进行了分层,使开发者更关注于业务逻辑的实现;第二,struts有着丰富的taglib,如能灵活运用,则能大大提高开发效率。
2. 使用Hibernate:因为hibernate为Java应用提供了一个易用的、高效率的对象关系映射框架。hibernate是个轻量级的持久性框架,功能丰富。
3. 使用Spring:因为spring基于IoC(Inversion of Control,反向控制)和AOP构架多层j2ee系统的框架,但它不强迫你必须在每一层中必须使用Spring,因为它模块化的很好,允许你根据自己的需要选择使用它的某一个模块;采用IoC使得可以很容易的实现bean的装配,提供了简洁的AOP并据此实现事务管理(Transcation Managment),等等

3. struts与spring是如何继承的
不懂题目之意:是否是说的struts的action都继承自org.apache.struts.action.Action而Spring中的继承就不清楚了。

4. struts如何实现国际化
以下以两国语言(中文,英文)为例:
1. 在工程中加入Struts支持
2. 编辑ApplicationResource.properties文件,在其中加入要使用国际化的信息, 例如:
lable.welcome.china=Welcome!!!
3. 创建英文资源文件ApplicationResource_en.properites
4. 创建临时中文资源文件ApplicationResource_temp.properites 例如:lable.welcom.china=中国欢迎您!
5. 对临时中文资源文件进行编码转换。可以使用myeclipse的插件,也可以在dos下执行:
native2ascii -encoding gb2312 ApplicationResource_temp.propertiesApplicationResource_zh_CN.properties
6. 在jsp中加入struts的bean标记库 <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
显示信息:
可以在struts-config.xml文件中定义多个资源包,而每个资源包可使用key属性指定包的名称。

5. struts2.0的常用标签
1. 往action里传值:
2. 显示标签 property 用于输出指定值:
3. 用于从页面往action中(user)的对象内传值:
4. 判断 用于在页面中判断指定数据 …. ….
5. 迭代用于将List、Map、ArrayList等集合进行循环遍历
6. URL地址标签,用于生成一个URL地址,可以通过URL标签指定的子元素向URL地址发送请求参数
7. 超链接 一般和标签一起使用,用于带多个参数。“>超链接
8. set标签,用于将某个值放入指定的范围内。例如application,session等。

6. struts中怎么配置form-bean、action、tiles
此处配置的是struts1.2的
form-bean配置:(在配置文件struts-config.xml中):
name: 指定form的名字; type指定form的类型:包名+类名;
action配置:(在配置文件struts-config.xml中)
attribute=""
input=""
name=""
parameter=""
scope="request"
type=""
>
path:请求Action的名字; attribute:form的名字,与form-bean中的name对应; input:输入页的路径;
name:如果配置了attribute,name不起作用,与attribute一样; parameter:使用分发Action时,指定调用分发
Action中的方法名;

scope:Action的范围; type:Action的类型:包名+类名;

7.什么是IOC(DI),有什么好处(java project 的spring IOC模拟)

IOC(Inversion Of Control,控制反转):一个类的某个属性需要使用时,需要有本类自己初始化。而在spring类的某些属性不用自己初始化而交给了spring来管理。这样的转换就是IOC思想。Spring的IOC思想是,spring的IOC容器在初始化的时候就根据配置对相应的对象进行初始化,并放在容器中。同时根据配置对相应类的属性进行初始化。也就是DI(Dependency Injection依赖注入),至此类的初始化不需要类本身负责初始化而交给了spring容器。
IOC的好处是:降低耦合性:某个类的一个属性,以前是该类自己控制,而引人Spring后,这个类的属性由Spring控制。
Spring IOC的模拟所做的事情是:在xml文件配置好相应的bean,设置注入关系。在解析xml时候对bean进行初始化同时对相应属性进行注入。

 

8.什么是AOP?

两种注入方式:

a)使用Annotation
b)使用xml

面向切面编程(AOP)完善spring的依赖注入(DI),面向切面编程在spring中主要表现为两个方面
1.面向切面编程提供声明式事务管理
2.spring支持用户自定义的切面

面向切面编程(aop)是对面向对象编程(oop)的补充,面向对象编程将程序分解成各个层次的对象,面向切面编程将程序运行过程分解成各个切面。
AOP从程序运行角度考虑程序的结构,提取业务处理过程的切面,oop是静态的抽象,aop是动态的抽象,是对应用执行过程中的步骤进行抽象,从而获得步骤之间的逻辑划分。
aop框架具有的两个特征:
1.各个步骤之间的良好隔离性
2.源代码无关性

 

9.DAO层采用JdbcTemplate操作数据,如何在Service层控制事务?
DAO层采用JdbcTemplate进行数据库操作。
Service层调用DAO层方法。
由于一个Service方法可能需要调用多个DAO对象的方法,需要在Service层进行事务控制。
由于一些原因,需要采用编程式事务(现使用TransactionTemplate)。
可是存在一个问题:
只有当创建TransactionTemplate对象的DataSourceTransactionManager使用的DataSource对象和DAO对象创建JdbcTemplate对象使用的DataSource是同一个对象时才能在transactionTemplate.execute()方法中控制事务。

分享到:
评论

相关推荐

    Java三大框架SSH框架

    Java SSH 框架是Java开发企业级应用的三大核心框架,它们分别是Spring、Struts 和 Hibernate。这个框架组合提供了一种高效且灵活的方式来构建Web应用程序,尤其在处理增删改查(CRUD)操作、分页、上传下载等功能时...

    深入浅出的理解框架SSH与MVC设计模式 - 副本.docx

    《深入浅出理解框架SSH与MVC设计模式》 在当今的Java EE开发领域,SSH(Struts2、Hibernate、Spring)框架与MVC设计模式是开发者必须掌握的核心技术。这些框架不仅简化了开发流程,提高了开发效率,而且在解决传统...

    SSH框架与MVC架构之间的关系

    MVC(Model-View-Controller)架构模式则是SSH框架设计的基础,它将应用程序分为三个主要部分:模型、视图和控制器。 1. **模型层(Model)**:在这个层次,主要关注业务逻辑和数据处理。Hibernate框架是SSH中的...

    java三大框架ssh项目空白模板

    "java三大框架ssh项目空白模板"是一个已经搭建好的开发环境,其中包含了这些框架的基础配置和示例代码,可以快速启动一个新的项目。模板中的所有组件都经过了测试,确保其正常运行。用户只需更改数据库连接的用户名...

    用java中的ssh三大框架做的一个入门的例子

    SSH是Java开发中常用的三大框架,分别是Struts、Spring和Hibernate。这个例子旨在为初学者提供一个基于SSH的简单应用示例,帮助他们理解和掌握这三个框架的集成与使用。 Struts是MVC(Model-View-Controller)设计...

    三大框架ssh整合Demo

    在"三大框架ssh整合Demo"中,Spring可能是整个项目的胶水,负责初始化和管理所有bean,包括Struts2的Action和Hibernate的数据访问对象(DAO)。 在实际的"ssh整合Demo"项目中,`Mylogin`可能是一个登录模块,它可能...

    Java 三大框架项目

    Java 三大框架项目,通常指的是Struts、Spring和Hibernate这三个在Java Web开发中广泛应用的开源框架。它们分别负责Web层、业务逻辑层和数据访问层的功能,为开发者提供了高效、灵活且可维护的开发环境。 Struts是...

    java三大框架SSH的参考手册

    Java SSH(Struts、Spring、Hibernate)是Java开发中广泛使用的三大开源框架,它们各自解决了一个特定的问题领域,共同构建了强大的企业级应用开发平台。本参考手册将深入探讨这三个框架的核心概念、功能以及如何在...

    Java SSH 框架整合,学习源码

    Java SSH 框架整合是Java开发中常见的一项技术,主要涉及Spring、Struts和Hibernate这三个开源框架。这些框架在企业级应用开发中扮演着重要角色,分别负责控制层、视图层和持久层的管理。下面将详细介绍SSH框架整合...

    javaSSH框架javaSSH框架 整合

    JavaSSH框架,通常指的是在Java开发中用于构建服务器端应用的一种技术栈,它结合了Struts、Spring和Hibernate这三个主流的开源框架。Struts提供了MVC(Model-View-Controller)设计模式,Spring则是一个全面的后端...

    JAVA三大框架SSH整合例子

    在Java Web开发领域,"SSH"是一个常用的术语,它代表了三个开源框架的首字母缩写:Struts(结构层)、Spring(业务层)和Hibernate(持久层)。这三大框架的整合提供了高效、灵活且可扩展的Web应用解决方案。下面将...

    java 三大框架面试题(SSH)

    Spring提供了大量模块,如数据访问/集成、Web、缓存、任务调度等,可以方便地与其他Java框架集成。Spring MVC是Spring框架的一部分,用于构建Web应用,它提供了模型、视图和控制器的分离,使得开发者可以灵活地组织...

    基于java三大框架的ssh

    SSH是Java开发中常用的三大框架,分别是Spring、Struts和Hibernate。这些框架分别负责不同的职责,Spring作为核心容器,管理对象的依赖注入;Struts处理Web层的请求和响应;Hibernate则专注于对象关系映射(ORM),...

    java三大框架学习笔记总结 新手必看

    总结,Java三大框架SSH的学习不仅是掌握单个框架的技术,更是理解和应用整体解决方案的过程。对于新手来说,从基础入手,理解每个框架的核心概念,再通过实际项目练习,可以快速提升开发技能,为今后的Java Web开发...

    java框架ssh框架项目案例

    这个“java框架ssh框架项目案例”提供了一个完整的示例,帮助开发者了解如何在实际项目中集成和应用这些框架。 1. **Struts2**:作为MVC(模型-视图-控制器)设计模式的实现,Struts2负责处理HTTP请求并分发到相应...

    Java框架SSH实例小型企业网站

    总的来说,"Java框架SSH实例小型企业网站"是一个适合初学者和进阶者的实践项目,通过实际操作,可以深入理解Spring的依赖注入、Struts的MVC模式、Hibernate的ORM机制,以及Ajax在提升用户体验上的作用。对于想要提升...

    java_SSH三大框架介绍

    SSH三大框架指的是Struts、Spring和Hibernate三个开源框架的组合使用,这种组合模式在Java Web应用程序开发中非常流行。下面将详细介绍这三个框架的各自特点和在SSH集成中的作用。 Struts是一个MVC(Model-View-...

    JSPssh物流便利店管理系统采用STRUTS框架、HIBERNATE框架ssh框架 MVC模式

    JSPssh物流便利店管理系统 是一套完善的WEB设计系统,对理解JSP java 编程开发语言有帮助,系统采用ssh框架 MVC模式进行开发,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。本系统运用MVC设计模式,采用...

    java三大框架示例

    Java三大框架指的是Spring、Struts和Hibernate,它们是Java企业级应用开发中广泛使用的开源框架,极大地提高了开发效率和代码质量。在这个“java三大框架示例”中,我们可以期待找到这三个框架的配置教程和实际应用...

    Java三大框架(ssh)总结.pdf

    Java三大框架SSH指的是Struts、Spring和Hibernate,它们是Java Web开发中常用的三大框架,用于构建高效、可维护的Web应用程序。 **Struts框架**是最早的Java开源框架之一,主要负责控制层。它通过`struts-config....

Global site tag (gtag.js) - Google Analytics