Struts
为理解决这些问题,涌现了Struts框架,它是一个完美的MVC实现,它有一个中心掌握类(一个Servlet),针对不同的业务,我们须要一个Action类卖力页面跳转和后台逻辑运算,一个或几个JSP页面卖力数据的输入和输出显示,还有一个Form类卖力通报Action和JSP中间的数据。JSP中可以利用Struts框架供应的一组标签,就像利用HTML标签一样大略,但是可以完成非常繁芜的逻辑。从此JSP页面中不须要涌现一行<%%>包围的Java代码了。
可是所有的运算逻辑都放在Struts的Action里将使得Action类复用度低和逻辑混乱,以是常日人们会把全体Web运用程序分为三层,Struts卖力显示层,它调用业务层完成运算逻辑,业务层再调用持久层完成数据库的读写。
利用JDBC连接来读写数据库,我们最常见的便是打开数据库连接、利用繁芜的SQL语句进行读写、关闭连接,得到的数据又须要转换或封装后往外传,这是一个非常啰嗦的过程。
Hibernate
这时涌现了Hibernate框架,它须要你创建一系列的持久化类,每个类的属性都可以大略的看做和一张数据库表的属性逐一对应,当然也可以实现关系数据库的各种表件关联的对应。当我们须要干系操作是,不用再关注数据库表。我们不用再去一行行的查询数据库,只须要持久化类就可以完成增编削查的功能。使我们的软件开拓真正面向工具,而不是面向混乱的代码。我的感想熏染是,利用Hibernate比JDBC办法减少了80%的编程量。
现在我们有三个层了,可是每层之间的调用是若何的呢?比如显示层的Struts须要调用一个业务类,就须要new一个业务类出来,然后利用;业务层须要调用持久层的类,也须要new一个持久层类出来用。通过这种new的办法相互调用便是软件开拓中最糟糕设计的表示。大略的说,便是调用者依赖被调用者,它们之间形成了强耦合,如果我想在其他地方复用某个类,则这个类依赖的其他类也须要包含。程序就变得很混乱,每个类相互依赖相互调用,复用度极低。如果一个类做了修正,则依赖它的很多类都会受到牵连。 为此,涌现Spring框架。
Spring
Spring的浸染便是完备解耦类之间的依赖关系,一个类如果要依赖什么,那便是一个接口。至于如何实现这个接口,这都不主要了。只要拿到一个实现了这个接口的类,就可以轻松的通过xml配置文件把实现类注射到调用接口的那个类里。所有类之间的这种依赖关系就完备通过配置文件的办法替代了。以是Spring框架最核心的便是所谓的依赖注射和掌握反转。
现在的构造是,Struts卖力显示层,Hibernate卖力持久层,Spring卖力中间的业务层,这个构造是目前海内最盛行的Java Web运用程序架构了。其余,由于Spring利用的依赖注射以及AOP(面向方面编程),以是它的这种内部模式非常精良,以至于Spring自己也实现了一个利用依赖注射的MVC框架,叫做Spring MVC,同时为了很好的处理事物,Spring集成了Hibernate,使事物管理从Hibernate的持久层提升到了业务层,利用更加方便和强大。
Struts框架是2000年就开始起步了,到目前已经发展了5年,技能相称成熟,目前环球Java开拓中Struts框架是显示层技能中当之无愧的王者。它拥有大量的用户群和很好的开拓团队。这也是海内大部分Java软件公司对新进员工的基本哀求。