struts学习(二)—struts1.0介绍篇

1、struts1.0以ActionServlet为核心控制器;用户发送请求时,将被核心控制器拦截,ActionServlet根据请求决定是否调用业务控制器处理用户请求(业务控制器还是控制器,调用模型来处理用户请求),处理完请求,处理结果通过jsp显示给用户。核心控制器是Struts1提供,业务控制器是开发者自定义的Action类。

2、struts的三中角色

模型层:由业务逻辑组件充当,主要实现业务逻辑方法以及数据库访问等。模型层不是由简单的javabean所能完成的,有可能是一个或多个EJB组件或者WebService。struts1不为模型层提供任何支持。

视图层:struts1的视图层采用jsp实现。struts1也提供了丰富标签库,有利于代码的维护。同时标签可以输出控制层处理的结果,减少脚本的使用。

控制层:ActionServlet继承了HttpServlet,将请求转发给Action处理,或者直接转向请求的jsp页面。

提示:对于任何的mvc框架而言,其实只是实现了控制器层,但它负责调用业务逻辑组件,并且负责控制器与视图技术(jsp)的整合。

3、struts1的缺点

1)支持的表示层技术单一

ActionServlet得到处理器返回的ActionForword,实际上是一个逻辑视图名,在struts-config.xml中寻找与之对应的实际视图资源。但是它没有提供与更多视图技术的支持 (比如FreeMarker、Velocity)。

2)与servlet API严重耦合,难于测试

execute方法里面有request,response,这些都是servlet api(web服务器自带)中的类,严重依赖web服务器,一旦脱离很难测试。

3)严重依赖struts1 api,侵入式设计

上面可以看到的Action,ActionMapping,ActionForm严重依赖struts1 api,一旦代码重构,这些action侵入设计将导致较低的代码复用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值