呵.
说了还不结贴啊?
一种WEB框架了啦

解决方案 »

  1.   

    j2ee框架的一种实现方法,使用多种j2ee 模式,比如command pattern基于MVC。jbuilder8、9都已经集成了该开发模式。如果你用的是7,请到easy struts 去下载 for jbuilder7的easy struts 插件。
      

  2.   

    Struts是一个开放资源框架,包含了一系列相互的类、Servlet和JSP标记。Struts框架是基于MVC模式开发Web应用程序的具体应用。使用Struts框架可以将商业逻辑、控制和数据显示功能模块区分开来,这样对其中一个模块的改动不会影响到其他模块。使用这一框架,开发人员可以分别集中开发商业逻辑模块、应用程序控制模块和数据显示模块,而不用担心这三个模块的耦合问题。
      Struts框架所使用的一些组件
    组件                          角色
     ActionServlet                     控制器
     ActionClass                      包含事物逻辑
     ActionForm                      显示模块数据
     ActionMapping                   帮助控制器将请求映射到操作
     ActionForward                   用来指示操作转移的对象
     ActionError                      用来存储和回收错误
     Struts标记库                    可以减轻开发显示层次的工作下面对以上组件做一些具体介绍:
    u ActionServlet —— MVC控制器组件,它对收到的请求HTTP进行调度。在由Struts框架构建的应用程序中只有一个Servlet运行实例。
    u ActionMapping —— 这个类代表URL模式和商业逻辑组件(Action)之间的映射。它根据商业逻辑定义输入、输出和具体的前进目标。
    u ActionForm —— MVC模型类,在Struts框架中它是一个JavaBean,被用来表示从MVC View组件中输入的数据。这个Bean实例化后,ActionServlet自动为其设置属性,如果Bean中有validate()方法,那么在调用用户执行的Action类之前先调用这个方法。ActionForm可以被扩展来表示一个JSP View 组件。
    u Action —— 表示商业逻辑,它是MVC模型组件的一部分。对它进行扩展后,可以执行某一特定请求的商业逻辑。
    u Struts标记库——代表Struts框架中所有的标志库——bean、html、logic和template。
    现在我们就看看Struts 框架是如何采用MVC模式来创建Web应用程序的。
    1) Client browser (客户浏览器)
    来自客户测览器的每个HTTP请求创建一个事件。Web容器将用一个HTTP响应作出响应。
    2) Controller (控制器)
    控制器接收来自浏览器的请求,并决定将这个请求发往何处。就Struts而言,控制器是以Servlet实现的一个命令设计模式。struts-config.Xml文件配置控制器。
    3)业务逻辑
    业务逻辑更新模型的状态,并帮助控制应用程序的流程。就Struts而言,这是通过作为实际业务逻包装的Action类完成的。
    4)Model(模型)的状态
    模型表示应用程序的状态。业务对象更新应用程序的状态。ActionForm Bean在会话级或请求级表示模型的状态,而不是在持久级。JSP文件使用JSP标记读取来自ActionForm Bean的信息。
    5)View(视图)
    视图就是一个JSP文件。其中没有流程逻辑,没有业务逻辑,也没有模型信息,只有标记。标记是使Struts有别于其他框架因素之一。
    1) ActionServlet类
        Struts的控制器是将事件(事件通常是 HTTP post)映射到类的一个Servlet。控制器使用配置文件以使我们不必对这些值迸行硬编码。ActionServlet是该MVC实现的Command部分,它是这一框架的核心。ActionServlet(Command)创建并使用Action、ActionForm和ActionForward。如前所述,struts-config.xml文件配置该Command。在创建Web项目时,您将扩展Action和ActionForm来解决特定的问题。文件struts-config.xml指示ActionServlet如何使用这些扩展的类。这种方法有几个优点:
    1 应用程序的整个逻辑流程都存储在一个分层的文本文件(struts-config.xml)中。这使得人们更容易查看和理解它,尤其是对于大型应用程序而言。
    2 网页设计人员不必费力地阅读Java代码来理解应用程序的流程。
    3 Java开发人员也不必在更改流程以后重新编译代码。
    4可以通过扩展ActionServlet来添加Command功能。
    2) ActionForm类
    ActionForm维护 Web应用程序的会话状态。ActionForm是一个抽象类,必
    须为每个输入表单模型创建该类的子类。输入表单模型,是指ActionForm表示的由HTML表单设置或更新的一般意义上的数据。例如,您可能有一个由HTML表单设置的UserActionForm。Struts框架将执行以下操作:
    1检查UserActionForm是否存在;如果不存在,它将创建该类的一个实例。
    2 Struts将使用HttpServletRequest中相应的域设置UserActionForm的状态。不需要采用太多的request.getParameter()调用。例如,Struts框架将从请求流中提取fname,并调用UserActionForm.setFname()。
    3 Struts框架在将UserActionForm传递给业务包装UserAction之前将更新它的状态。
    4在将它传递给Action类之前,Struts还会对UserActionForm调用validation()方法迸行表单状态验证。注意这并不总是明智之举。别的网页或业务可能使用UserActionForm在这些地方,验证可能有所不同。在UserAction类中进行状态验证可能更好。
    5可在会话级维护UserActionForm。在Struts框架里,由struts-config xml文件控制HTML表单请求与ActionForm之间的映射关系。
    3)Action类
        Action类是业务逻辑的一个包装。Action类的用途是将HttpServletRequest转换为业务逻辑。要使用Action,请创建它的子类并覆盖process()方法。
        ActionServlet(Command)使用perform()方法将参数化的类传递给ActionForm。此时,输入表单数据域(HTML表单数据)己被从请求流中提取出来并转移到ActionForm类中。
    扩展Action类时请注意简洁。Action类应该控制应用程序的流程,而不应该控制应用程序的逻辑。通过将业务逻辑放在单独的包或EJB中,我们
    就可以提供更大的灵活性和可重用性。
     ActionServlet对具体业务类接口一无所知。因此,Struts提供了它能够理解的一个业务接口,即Action。通过扩展Action,使业务接口与Struts业务接口保持兼容。Action开始为一个接口,后来却变成了一个类。
     4)Error类
        UML图中还包括ActionError和ActionError。ActlonError封装了单个错误消息。ActionErrors是ActionError类的容器,View可以使用标记访间这些类。ActionError是Struts保持错误列表的方式。
    5)ActionMapping类
      输入事件通常是在HTTP请求表单中发生的,servlet容器将HTTP请求转换为HttpServletRequest.控制器查看输入事件并将请求分派给某个Action类。strut-config.xml确定Controller调用哪个Action类。strut-config.xml配置信息被转换为一组ActionMapping而后者又被放入ActionMapping容器中。ActionMappings是ActionMapping对象的一个集合。
        ActionMapping包含有关特定事件如何映射到特定Action的信息。ActionServlet(Command)通过Perform()方法将ActionMapping传递给Action类。这样就使Action可访问用于控制流程的信息。
    3.3 基于Struts框架开发Web应用程序的优势
    基于Struts框架开发Web应用程序简化了基于MVC的应用程序的开发;提供了很多对象实现了MVC的基本特征;允许开发人员使用XML文件来配置很多默认的框架;提供了一个灵活的体制来处理错误和异常;提供了一个方便的方法对应用程序的信息进行国际化;Struts 框架具有组件的模块化、灵活性和重用性的特点,同时简化了基于MVC的Web应用程序的开发。
      

  3.   

    Struts是一个基于MVC结构的WEB应用程序开发框架