zoukankan      html  css  js  c++  java
  • 第一章Struts1

      一、框架的流程图

        二、运行机制:

    1.      客户端先从Web服务器发送出“*.do/*.action”的http请求到Tomcat。

    2.      将Tomcat创建的request和response传递到ActionServlet(Struts1中的核心控制器,在Struts1中已经集成好了)。

    3.      ActionServlet首先截取URL。

    4.      根据URL取得配置信息。

    5.      创建一个ActionForm。

    6.      把表单数据赋值给ActionForm。

    7.      ActionServlet实例化Action

    8.      ActionServlet将执行创建的Action中的execute(request,response,actionform)

    9.      Action调用获得ActionForm获取数据。

    10.    Action调用JavaBean,并将用户请求参数传递给JavaBean

    11.    Action根据JavabeaBean处理的结果返回ActionForward示例。

    12.     ActionForward对象代表转发对象的逻辑名和物理名之间的关系映射,包装了返回信息。

    13.     根据ActionForward将请求转发至相应的JSP页面。

    14.     进行JSP页面的渲染。

    15.     Jsp页面调用JavaBean显示数据。JSP页面表现之前还需要调用对应的JavaBean。此时的JavaBean不再包含业务逻 辑的JavaBean,而是封装了处理结果的普通VO(值对象)。JSP页面根据VO,利用JSTL和HTML客户端HTTP相应。

    注:

    ActionServlet:负责截取URL或分发,他是一个中央控制器

    ActionForm:收集表单数据,这样表单数据会自动转换成相应的数据类型。

    Action:业务控制层,也是和JavaBean打交道的桥梁:

    1.取得表单数据

    2.调用业务逻辑

    3.返回转向信息

    ActionForWard:主要包装转向信息

    网上更多的流行的是Struts1的协作图(UML图九种之一)

           三、Struts1框架的优缺点:

    优点:

    1.      开源的框架,结构清晰

    2.      是MVC的经典实现(MVC是一种思想,而不是一种技术)

    3.      处理异常机制,实现国际化

    4.      具有强大的标签库

    5.      解决了jsp页面存在的大量的java代码,维护更加方便

    6.      在FormBean中会自动提交,不会去使用传统的Get、set方法得到值,取值。

    缺点:

    1.      支持的表层技术单一:struts 1 只支持JSP作为表现层技术,不提供与其他表现层技术,例如Velocity,FreeMarker等技术的整合.这一点严重制约了struts 1框架的使用,对于目前的很多java EE应用而言,并不一定使用JSP作为表现层技术.

    2.      与Servlet API严重耦合,难预测试---------   因为struts 1框架是在model 2的基础上发展起来的,因此它完全是基于 strvletAPI的,所以在struts 1的逻辑控制器内,充满了大量的 servletAPI.

    3.      配置复杂

    4.      代码严重依赖于Struts1,属于入侵式设计

    5.     action是一个单例模式,必须设置为线程安全 

  • 相关阅读:
    iOS resign code with App Store profile and post to AppStore
    HTTPS科普扫盲帖 对称加密 非对称加密
    appid 评价
    使用Carthage安装第三方Swift库
    AngularJS:何时应该使用Directive、Controller、Service?
    xcode7 The operation couldn't be completed.
    cocoapods pod install 安装报错 is not used in any concrete target
    xcode7 NSAppTransportSecurity
    learning uboot how to set ddr parameter in qca4531 cpu
    learning uboot enable protect console
  • 原文地址:https://www.cnblogs.com/ZHANYU/p/3608777.html
Copyright © 2011-2022 走看看