小谈 B-S架构
B-S,英文全拼为Browser-Server,意为浏览器-服务器模式,也称为W-S(WebBrowser-Server),是取代C-S(Client-Server)成为企业级应用开发的主要模式.
B-S模式相比于C-S模式的优势在于不用安装特定的客户端,只要装有web浏览器就能使用.对开发公司来说,极大的减少了为客户安装调试Client端的工作量;对客户公司来说也降低甚至避免了训练员工用新系统的费用.
下面主要说说B-S模式的标准架构及一些注意事项.
MVC在javaee中是最主流的架构方式.现在的B-S绝大部分也采用的MVC架构.
M:model,模型层.包括BO,PO,DAO
PO:persistentobject,也可以叫做entity,即实体类.一般是一个数据库表格对应一个po类.
DAO:dataaccessobject,数据访问对象.在企业级应用中,写dao时有三个注意事项:
1.使用连接池,因为数据库连接的创建是一个很耗时的过程.
2.单例.dao里面封装的是对数据库的访问方法,一个就够了,没必要建立多个dao耗费系统资源.在这给一个实现单例的简单方法.
代码为:
privatestaticDao(){};//将构造器私有并静态化,只允许在类的内部调用,并只执行一次
privateDaodao=newDao()
publicstaticDaogetInstance(){
returndao;
}
3.一个dao方法不能跨事务
BO:businessobject,事务控制对象,负责事务的管理.涉及多个事务处理时要求在dao方法中不能自动提交(connection.setAutoCommit(false)),也不能自己提交,即在dao方法中不能有connection.commit().建议在处理较复杂的业务时才使用.在使用bo处理业务时,还要求数据库连接线程单例,要用到ThreadLocal类,实现方法并不复杂.
还有一点就是,对于bo和dao,最好用接口,方便维护和使用代理.
V:view,视图层,在java中主要为jsp.视图层拿到数据后将其显示,原则是不进行复杂运算,不调用BO(即不进行事务处理)
C:control,控制层,也称前端控制器(FC,frontcontroller),如servlet.控制层接收请求后调用BO,然后将处理得到的数据存到pageContex,request,session,application四个对象中,最后转发给view.值得注意的是,尽量不要在session中存放大的数据对象,以免过多地占用系统资源,拖慢系统.
[size=large][/size]