我从上世纪90年代末开始对Web框架发生兴趣。我准备写一种语言,它可以使我能解决
在进行高级开发时的某些问题--通过它可以使我从动态分配内存中的问题中解放出来。
一开始,我真正想实现的是如何使一些Web应用开发者的工作变得容易一点。但后来
Struts那以置信的流行说明我并不是唯一在这些问题中挣扎的人—Struts满足了通常的需要。
当早期的JSP规范草案发布时(0.91和0.92),此文档中最迷人概念的是JSP使用了两种
基本设计风格的理念。Model 1 设计主要表现在表单提交可以回复到创建该表单的Servlet或
JSP页面。这种设计鼓励混合表现逻辑(用来创建表单)和业务逻辑(用来验证表单输入和
处理请求事务)。这种设计在那些开发者仅具单一技能(比如页面设计者懂一些编程而JAVA
开发者也知道一些HTML)时经常使用。而且在时间第一的情况下也很有用(原型必须在下
周一运行而我们还没有获得风险投资)。而经验告诉我们, Model 1 设计在后来会很难进
行维护和升级。
相反,Model 2 设计是将表单提交给一个控制器组件。控制器组件调度相应的业务逻辑
组件来完成请求的事务。业务逻辑组件和数据库交互,并获取它在下次用户交互所需要的信
息。控制器组件将响应页面的创建委派给表现组件,表现组件只有一个目的,就是创建响应。
你可能想Model 2听起来好像更加复杂—也许甚至好想要完全扼杀简单应用。实际上,基于
Model 2 创建一个应用并不比用Model 1创建同一个应用花太多的时间。但主要的优点会很
快显现出来。如果你创建了一个正确的应用,对一层的主要修改,应该基本不会影响到其它
层(如果有的话),并且你可以马上在没受影响的层重用你的逻辑。
虽然,所有这些对Web应用架构的聪明的研究正在进行,但我的专业工作让我也对方向
感兴趣。我正为一个专为长途运输行业提供信息服务的美国公司工作,并且我们正在准备将
业务扩展到欧洲。这样就产生了处理多语言和国际化问题的需要。我很快就受到了我用来实
现基本MVC的单一的简单Servlet的折磨,即它没有解决包含一个语言选择控件的问题。
对国际化问题的第一次努力是我尝试使用JSP1.1种的新的标记来创建“用户接口组件”
—它最终导致了现在Struts一个标记<bean:message>。
紧跟着,我加入到Sun Microsystems 并工作于Tomcat servlet 和JSP container的创建(我
是Tomcat 4的基础Catalina servlet 容器的主要架构者)。这个开发的大部分工作是在Apache
的开源社区内进行,作为Jakarta项目的一部分—本项目由1999年Sun 贡献了servlet 和JSP
参考实现源代码给Apache起始。然而,我并不满意于那时候Model 2-面向应用设计的状态,所
以我开始想怎样来解决这个问题。

解决方案 »

  1.   

    j2ee构架应该是多层的,现在我们就就这个问题探讨一下,如何划分,将是系统更加健壮,假如按三曾来划分,将如何进行划分,
    一种典型的结构应该是这样的:
    1:)View 层 主要完成 数据处理功能,因此就和三层结构的表示层相对应,因此这一层的实现上多用于 JSP ,原因是jsp能够很
    容易的展现给用户一个可操作健壮视图。
    2:)Control层 主要完成企业的业务逻辑处理(并且包括页面间的连接关系),因为和三层结构的逻辑层想对应,这一层的实现
    技术,多用于servlet/javabean/session bean。
    3:)Model 层 对应这三层结构的数据层(存储层)。这一层的实现技术对应于 j2ee的 Entity bean .
      

  2.   

    模式二其实就是mvc架构的体现?
     而struts 就是mvc的一种应用框架
      

  3.   

    mvc是种概念,strut是种开发mvc实现方式.
      

  4.   

    mvc是种概念,可以用strut来实现MVC结构的应用..