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 应用提供了一个易用的、高效率的对象关系映射框架 。