浅谈SSH框架的形成原因
我们考虑这样一个功能,提供一个表单,让用户输入用户名和密码,提交之后,服务器程序通过查看数据库中有无和输入用户名相同的用户,如果有,就提示登录失败,如果无,就提示登录成功。
1、第一种架构
???????? client--------------------jsp------------------DB
??????架构说明:表单和服务器处理程序全部写到jsp文件中。
????? 该架构的优点是:架构简单。
??????该架构的缺点是:业务逻辑代码和访问数据库代码没有分开,不利于维护!
2、第二种架构
???????? client-------jsp------usermanger---------user---------DB
???????架构说明:三层架构,展现层(jsp) 业务逻辑层(usermanger(管理层)+user(实体层)) 数据层(DB)
?????? 优点:增加业务逻辑层,使得jsp只负责展现。
?????? 缺点:访问数据库的代码繁琐。
3、第三种架构
????? client---------jsp----------usermanger-------hibernate------DB
????????????????????????? jsp--------user
????? 架构说明: 用hibernate访问数据库
????? 优点:使用面向对象的方式访问数据库,代码变简单
????? 缺点:缺少DAO层,访问数据库的代码无法复用!
4、第四种架构
??????client----jsp----usermanager----userDAO----userDAOImply(hibernate)----DB
??????????????????jsp----------user
?????? 架构说明:四层架构:展示层(jsp)、业务逻辑层(usermanger+user)、DAO层? (UserDaoAO+userDAOImply)、数据层(DB)。??增加数据访问层DAO,并将数据访问层设置为接口。
??????? 优点:增加了DAO层,使得DAO层的代码可以复用!
??????? 缺点:业务逻辑层不易扩展!如果想改变业务逻辑,必须重新开发业务逻辑层usermanger
??5、第五种架构
????client--jsp--usermanager---UsermangerImly--userDAO---userDAOImply(hibernate)---DB
????????????? jsp----------user
???????? 架构说明:四层架构:将业务逻辑层的管理模块usermanger设为接口,增加实现类usernmangerimpl
???????? 优点:业务逻辑层的管理模块可扩展。
???????? 缺点:视图层(展现层)不易扩展!
?6、第六种架构
client--jsp--struts2filter-action--view:jsp--usermanager--UsermangerImly--userDAO--实现(hibernate)-DB
??????????????????????????????????action------------------usermanger
??????????????????????????????????????
????????架构说明:增加struts框架,生成了MVC架构,
??????? C为(struts2filter+action)? V为(view:jsp)
??????? M为(usermanager--UsermangerImly--userDAO--实现(hibernate)-DB)?
??????? 优点:引入struts框架,使得项目容易管理。MVC架构把数据处理、程序输入输出控制及数据显示分离开来,并且描述了不同部件的对象间的通信方式,使得软件可维护性,可扩展性、灵活性以及封装性大大提高;MVC(Model-View-Controller)把网站的组成分解为M(模型) 、V(视图) C(控制器)三种部件。视图表示数据在屏幕上的显示。控制器提供处理过程控制,他在模型和视图之间起连接作用。控制器本身不输出任何信息和做任何处理,它只负责把用户的请求转成针对Model的操作,和调用相应的视图来显示Model处理后的数据。
???????? 缺点:不具有IOC(控制反转)和AOP(面向切面编程)的功能
7、第七种架构
client--jsp--struts2filter-action--view:jsp--usermanager--UsermangerImly--userDAO--实现(hibernate)-DB
???????????????????????????????????action------------------usermanger
??????????
?????????? 架构说明:增加spring框架。
???????????优点:具有IOC特性,减少代码中的new,大部分属性赋值的操作架构spring容器来完成
???????????????????具有AOP特性,在不影响正常的业务逻辑的情况下,在逻辑中增加类似于拦截器的功能。
?????????? 缺点:架构比较复杂。