MVC与Struts2映射

Struts2基于Webwork改进而成,采用FilterDispatcher作为核心控制器,支持多种视图技术,并解耦ServletAPI。模型层通过工厂模式或IoC容器管理业务逻辑组件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    struts2是基于Webwork的基础上做了进一步的改进,而不是在原有struts1做更新的,struts2的出现弥补了struts1的不足之处.struts2的体系结构实现了model-view-controller(MVC)设计模式的概念,它将这些概念映射到web应用程序的组件和概念中.


1.控制器层(controller)

    与struts1使用ActionServlet作为控制器不同,struts2使用了Filter技术,FilterDispatcher是struts框架的核心控制器,该控制器负责拦截和过滤所有的用户请求,如果用户请求以action结尾,该请求将被转入struts框架来进行处理.struts框架获取了*.action请求后,将根据*.action请求的前面名称部分决定调用哪个业务控制action类. 
    struts应用中的action都定义在struts.xml文件中,在该文件中配置action时,主要定义了该action的name属性和class属性,其中name属性决定了该action处理哪个用户请求,而class属性决定了action的实现类.

    用于处理用户请求的action实例,并没有与Servlet API耦合,所以无法直接处理用户的请求,为此,struts框架提供了系列拦截器,该系列拦截器负责将HttpServletRequest请求中的请求参数解析出来,传入到action中,并回调Action的execute方法来处理用户请求.

 

2.显示层(view)

    struts2框架改变了struts1只能使用jsp作为视图技术的现状,它还允许使用其他的视图技术,如(FreeMarker\Velocity)等作为显示层.
     当struts2的控制层调用业务逻辑组件处理完用户请求后,会返回一个字符串,该字符串代表逻辑视图,它并未与任何的视图技术关联.

 

3.模型层(model)

     模型层指的是后端业务逻辑处理,它会被action调用来处理用户请求,当控制器需要获许得业务逻辑组件实例时,通常并不会直接获取业务逻辑组件实例,而是通过工厂模式来获得业务逻辑组件的实例;或者利用其他IoC容器(如Spring容器)来管理业务逻辑组件的实例.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值