background image

Java---SSH(MVC)

1.

谈谈你 mvc 的理解

    MVC 是 Model—View—Controler

的简称。即模型 视图 控制器。MVC 是一种设计模式,它强制

性的把应用程序的输入、处理和输出分开。

    MVC 中的模型、视图、控制器它们分别担负着不同的任务。
    视图: 视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并接受用户的输入。视图不进
行任何业务逻辑处理。

    模型: 模型表示业务数据和业务处理。相当于 JavaBean。一个模型能为多个视图提供数据。这提高了
应用程序的重用性

    控制器: 当用户单击 Web 页面中的提交按钮时,控制器接受请求并调用相应的模型去处理请求。
            然后根据处理的结果调用相应的视图来显示处理的结果。
    MVC 的处理过程:首先控制器接受用户的请求,调用相应的模型来进行业务处理,并返回数据给控
制器。控制器调用相应的视图来显示处理的结果。并通过视图呈现给用户。

Struts

1.

struts1.2 和 struts2.0 的区别?如何控制两种框架中的单例模式?

   struts1.2 和 struts2.0 的对比
   a、Action 类:
      struts1.2 要求 Action 类继承一个基类。struts2.0 Action 要求继承 ActionSupport 基类
   b、线程模式
      struts1.2 Action 是单例模式的并且必须是线程安全的,因为仅有一个 Action 的实例来处理所有的
请求。

      单例策略限制了 Struts1.2 Action 能做的事情,并且开发时特别小心。Action 资源必须是线程安全
的或同步的。

      struts2.0 Action 为每一个请求产生一个实例,因此没有线程安全问题。
   c、Servlet 依赖
            struts1.2 Action 依 赖 于 Servlet API, 因 为 当 一 个 Action 被 调 用 时 HttpServletRequest 和
HttpServletResponse 被传递给 execut 方法。
      struts2.0 Action 不依赖于容器,允许 Action 脱离容器单独测试。如果需要,Struts2 Action 仍然可
以访问初始的 Request 和 Response。
      但是,其他的元素减少或者消除了直接访问 HttpServletRequest 和 HttpServletResponse 的必要
性。

   d、可测性
      测试 struts1.2 Action 的一个主要问题是 execute 方法暴露了 Servlet API(这使得测试要依赖于
容器)。一个第三方扩展:struts TestCase
      提供了一套 struts1.2 的模拟对象来进行测试。
      Struts2.0 Action 可以通过初始化、设置属性、调用方法来测试,“

依赖注入 也使得测试更容易。

 
2.

项目中为什么使用 SSH

    1. 使用 Struts 是因为 struts 是基于 MVC 模式的,很好的将应用程序进行了分层,使开发者更关注于
业务逻辑的实现;第二,struts 有着丰富的 taglib,如能灵活运用,则能大大提高开发效率。
    2. 使用 Hibernate:因为 hibernate 为 Java 应用提供了一个易用的、高效率的对象关系映射框架 。