Struts2 深入学习笔记 一


   View 视图 : Model2  JSP
      解析模型的数据
      产生HTML响应
      请求模型的更新
      发送用户输入给控制器
   
   Controler 控制器:Model2 Servlet
      接收并验证HTTP请求的数据
      将用户数据与模型的更新相映射
      选择用于响应的视图
   
   Model 模型:Model2 JavaBean (数据模型 JavaBean  和 业务逻辑模型 JavaBean)
          封装应用状态
      响应状态查询
      暴露应用功能
      通知视图改变
     
     
交互关系:
1. 首先是展示视图给用户,用户在这个视图进行操作,并填写一些业务数据
2. 然后用户用单击提交按钮,发出请求
3. 视图发出的用户请求会达到控制器,在请求中包含了想要完成什么样的业务功能及相关数据
4. 控制器处理用户请求,会把请求中的数据进行封装,然后选择并调用合适的模型,请求模型进行状态更新,然后选择接
   下来要展示给用户的视图。
5. 模型处理用户请求的业务功能,同时进行模型状态的维护和更新。
6. 当模型状态发生改变的时候,模型会通知响应的视图,告知视图它的状态发生了改变。
7. 视图接到模型的通知后,会向模型进行状态查询,获取需要展示的数据,然后按照视图本身的展示方式,把这些数据展示出来。
        
MVC 的核心手段是解耦
  模型和视图是解耦的
        
Model2时期的MVC
      Servlet+JSP+JavaBean
   缺点:  1. 流程凌乱 servlet在完成对用户的处理后,下一个页面是谁?如何跳转,这些都是在servlet代码完成,导致
              Servlet既要处理请求,还有负责页面的流程,功能不够单一,整个系统的页面流程很难把握,页面流程
              都被分散到各个Serlet里面了
           2. 数据传递无序。
           3. 缺乏辅助功能,没有统一的分发调度、验证框架、国际化、本地化、例外消息处理等
          
Struts1时期的MVC
   缺点: 1. Action实现类必须继承Struts1中的Action,降低了灵活性
          2. 一个应用中,只能使用一个单一的ActionServlet,导致配置冲突
          3. Action的API同 HttpServletRequest和HttpServletResponse是耦合的,单元测试困难
          4. 页面传值的JavaBean必须继承Struts1中的FormBean,而其本质就是一个 JavaBean
                  5. 没有独立的拦截器模型,类似面向切面 (AOP)的操作都要写成 Filter,使用和配置都较弱


Struts2 MVC
  
   视图(结果Result) -》 提交请求 -》 控制器(FilterDispatcher)
   控制器(FilterDispatcher)-》根据URL调用动作-》模型(动作Action)
   模型(动作Action)-》选择结果-》视图(结果Result)
  
  
   控制器--FilterDispatcher  负责根据用户提交的URL和struts.xml中的配置,选择Action
                  其实就是一个过滤器,体现了J2EE核心设计模式中的前端控制器模式
   
   动作---Action    请求经过FilterDispatcher,分发到合适的动作Action。 Action负责把用户的参数组装成合适的数
          据模型,并调用相应的业务逻辑,进行真正的功能处理,然后获取下一个视图展示所需要的数据。
          与Servlet API 解耦,不需要直接去引用和使用HttpservletRequest与HttpServletResponse接口,方便单元测试
         
   视图---Result  展示动作中获取到的数据展现给用户。  jsp  模板freemarker、velocity、图表jfreechart、报表
          JasperReports、XML转为为HTML的XSLT等。
         
                      

            
        

转载于:https://my.oschina.net/edwin0/blog/896166

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值