Java SSH面试精华:MVC设计模式详解与Struts 1&2对比

需积分: 7 0 下载量 186 浏览量 更新于2024-07-21 收藏 155KB DOC 举报
Java-SSH面试题主要聚焦在MVC(Model-View-Controller)设计模式的理解及其在Struts框架中的应用。MVC是一个广泛应用于软件开发中的架构模式,它的核心思想是将应用程序的结构分解为三个独立的部分,以提高代码的可维护性和模块化。 1. **MVC理解**: - MVC代表模型(Model)、视图(View)和控制器(Controller)。模型负责业务逻辑和数据管理,通常使用JavaBean实现。模型独立于具体视图,提供了数据和业务规则,增加了代码的复用性。 - 视图是用户界面,负责展示数据,接收用户的输入,但不参与业务逻辑处理,只是数据的展示层。 - 控制器作为用户与模型之间的中介,处理用户的请求,调用模型进行业务处理,然后根据结果调用合适的视图进行反馈,实现了前后端的解耦。 2. **Struts框架对比(Struts 1.x vs Struts 2.x)**: - **Action类**:在Struts 1.2中,Action类需继承基类,而Struts 2.0的Action不再强制要求,而是推荐继承ActionSupport。这降低了灵活性,但在Struts 2.x中,Action的单例模式被弱化。 - **线程模式**:Struts 1.2的Action是单例且线程安全,可能导致性能瓶颈;Struts 2.0则为每个请求创建新的Action实例,避免了线程安全问题,但开发者需要确保Action资源的正确管理。 - **Servlet依赖**:Struts 1.2的Action依赖于Servlet API,而Struts 2.x Action更加独立,减少了对容器的直接依赖,有利于单元测试。 - **可测性**:测试Struts 1.2的Action时,通常需要模拟Servlet上下文,而在Struts 2.x中,由于Action的独立性,测试更为方便。 在面试中,候选人可能被问及如何在实际项目中应用MVC模式,以及在不同版本的Struts框架中如何优化代码结构和性能,如何处理多线程场景,以及如何利用Struts 2.x的特性进行单元测试等。熟悉这些概念和实践经验对于Java开发者来说至关重要,尤其是在SSH(Spring, Struts, Hibernate)架构组合中工作。