选择J2EE的SSH框架的理由

选择J2EE的SSH框架的理由

Struts2框架:

    Struts2框架的基本思想是采用MVC设计模式,即将应用设计成模型(Model)、视图(View)和控制器(Control)三个部分;控制部分由DispatchFilter承担,模型部分是由一系列的拦截器(Interceptors)、Action组件和ActionContext组件组成,视图组件则是由Result组件组成。

    Struts2是这样工作的:首先由我们即用户在浏览器中输入一个url地址,例如:http://localhost:8080/Struts2,此时浏览器就会把这个请求发送给tomcat,tomcat接收到这个请求后,会检查一下应该交给哪个web程序处理,接着是交给Struts去处理,然后Struts会去参考此程序下的配置文件web.xml,在web.xml中依次按顺序找到过滤器(Filter),最后由过滤器FilterDispatcher(是mvc中c控制层的核心)询问ActionMapper来决定这个请是否需要调用某个Action, 如果 ActionMapper决定需要调用某个Action,FilterDispatcher把请求的处理交给 ActionProxy ,ActionProxy通过struts.xml询问框架的配置文件,找到需要调用的Action类和方法来处理这请求;Action执行完毕,根据struts.xml中的配置找到对应的返回结果result,并跳转到相应页面,最后返回HTTP响应到客户端浏览器;可以简化为以下示图:

Hibernate框架:

    在基于MVC设计模式的JAVA WEB应用中,Hibernate可以作为模型层/数据访问层。它通过配置文件(hibernate.properties或hibernate.cfg.xml)和映射文件(***.hbm.xml)把JAVA对象或PO(Persistent Object,持久化对象)映射到数据库中的数据库,然后通过操作PO,对数据表中的数据进行增,删,改,查等操作。

    Hibernate是这样工作的:应用程序先调用Configration类,该类读取Hibernate的配置文件及映射文件中的信息,并用这些信息生成一个SessionFactpry对象;然后从SessionFactory对象中生成一个Session对象,并用Session对象生成Transaction对象;可通过Session对象的get(),load(),save(),update(),delete()和saveOrUpdate()等方法对PO进行加载,保存,更新,删除等操作;在查询的情况下,可通过Session对象生成一个Query对象,然后利用Query对象执行查询操作;如果没有异常,Transaction对象将 提交这些操作结果到数据库中;可以简化为以下视图:

Spring框架:

    Spring是基于IoC(Inversion of Control,反向控制)和AOP的构架多层j2ee系统的框架,它实现了很优雅的MVC,对不同的数据访问技术提供了统一的接口,采用IoC使得可以很容易的实现bean的装配,提供了简洁的AOP并据此实现Transcation Managment等等;其工作流程如下图所示:

SSH框架的流程:

    Jsp页面----Struts------Service(业务逻辑处理类)---Hibernate(左到右),struts负责控制Service(业务逻辑处理类),从而控制了Service的生命周期,这样层与层之间的依赖很强,属于耦合。这时,使用spring框架就起到了控制Action对象(Strus中的)和Service类的作用,两者之间的关系就松散了,Spring的Ioc机制(控制反转和依赖注入)正是用在此处。

    在SSH框假中spring充当了管理容器的角色,它能降低系统的可测试性和面向对象的程度,能消除各种各样自定义格式的属性文件的需要;Hibernate用来做持久层,它将JDBC做了一个良好的封装,我们在与数据库进行交互时可以不用书写大量的SQL语句,很大程度上避免了因为SQL语句而造成的错误;Struts是用来做应用层的,它负责调用业务逻辑serivce层;由此可看出SSH确实是一个良好的系统开发框架,相信用了它之后,可以减轻我们建立解决复杂问题方案的负担和精力,从一定程度上会有效的提高我们的开发效率,这就是我选择它作为系统开发的理由。

 

posted @ 2016-05-07 19:03  Twinklelittlestar  阅读(3077)  评论(1编辑  收藏  举报