• Struts 学习之03Controller(控制器 上)


     前面写了一些struts的视图部分,而今天来看看它的控制器,首先回顾一下普通的WEB模式,一般来说从一个用户发出一个请求,正常时到一个Servlet,然后servlet提供一个服务它会根据用户的请求,它会调用一个JSP页面,或更复杂一点它会调用一个BEAN,而这个BEAN复杂一点,可能会负责我们业务逻辑交互,取得一个数据,得到需要的数据资料,返回BEAN,然后JSP页面进行读取显示!
      其实上面所术的JSP  servlet 以及javabean就是一个简单的MVC,分别对应视图层,控制层以及模型层。从上图我们也可以看出一般的WEB应用程序,我们都是通过servlet作为主要控制器来使用,用户所接触的第一个服务控制对象就是servlet所产生的实体,其后servlet会根据用户所请求的内容平决定如何处理客户请求,或者该调用其他的bean实体来协助处理,以及决定该反馈用户的数据是什么,整个过程中servlet把后台服务和用户隔离,使得客户实体和数据实体/服务实体之间不直接关联,使得用户的数据处理及反馈的灵活性有了很大的增强,同时减少了组件实体之间的偶合,视图组件与模型组件之间的联系就不太强了!
      而struts也是MVC这样一种模型的体现,它主要的目的也就是作为一个MVC的框架,它同样也是接受用户的请求,然后根据用户的不同请求,调用对应的模型组件来执行相应的业务逻辑,获取业务逻辑执行的结果,而且还可以根据当前的状态数据及业务逻辑的处理结果,选择适合的视图组件返回给客户
      我们来看下图

      浏览器发出请求后,我们经过的是一个ActionServlet对象,然后ActionServlet对象它会处理请求,会读取相对的struts-config.xml配置文档,然后调用对应的Action执行其execute方法,然后会调用对应的ActionForm或者直接反馈给相应的JSP页面或者和业务层交互,整个里面所有的请求经过的地方都是ActionServlet,它也是我们前面讲到的servlet中的一种!
      关于这个里面的具体步骤如下图:

      首先我们经过一个ActionServlet然后我们会经过一个RequestProcessor对象 ,在RequestProcessor处理完之后会调用相关的Action对象,Action对象里面有一个execute方法,在经过ActionServlet调用了之后会交给RequestProcessor处理,它处理完后会调用Action,然后由action操作对应的ActionForm,最终得到我们需要的结果!
      那么这次的随笔中就要写有关AnServlet;  RequestProcesssor;Action;ActionMapping;ActionForward;
      我们还是看看前面文章中用到的图!
    当请求获取到的时候我们会首先调用ActionMapping,,这时如果它找到的话,会创建一个ActionMapping对象,创建完后就是我们的struts-config.xml配置文件里面的Bean的配置,会对应创建一个FormBean,也就是所谓的ActionForm,然后这个ActionForm有了后,会去验证,也就是前面我们已经讲了的Validate,如果验证成功了我们会调用相对的Action里面的execute方法,如果execute返回的是一个ActionForward对象,会进行跳转,最终用户得到结果!

    有了上面原理后,我们再来建一个项目!(楚旋于 待续 2006-12-23    02:56分 )

  • 相关阅读:
    MyBatis中#{}和${}的区别
    springBoot 配置详解
    模板方法模式
    记录一次linux挂载数据盘
    缓存击穿,缓存穿透,缓存雪崩
    Echart折线值相加问题
    mybatis plus主键生成策略
    BigDecimal精度损失
    cent0s6安装nginx小程序https
    Centos6 java运行环境部署
  • 原文地址:https://www.cnblogs.com/eflylab/p/601059.html
Copyright © 2020-2023  润新知