J2EE-SSH面试精华:MVC详解与Struts1.2与2.0对比

需积分: 0 1 下载量 6 浏览量 更新于2024-07-29 收藏 204KB DOC 举报
J2EE-SSH面试题是一份针对Web开发人员的实用资料,主要聚焦于Java的SSH(Spring, Struts, Hibernate)架构。SSH是企业级Java应用开发中的常见组合,它们在MVC(Model-View-Controller)设计模式中扮演关键角色。 1. MVC理解与分工: MVC是一种分层架构,将应用程序划分为三个核心组件: - **模型(Model)**:代表业务逻辑和数据,通常使用JavaBean来实现,负责处理数据的获取、处理和存储。模型是应用程序的核心,保持业务逻辑独立于视图和控制器。 - **视图(View)**:用户界面层,负责呈现数据给用户,接收用户的输入。视图不参与业务逻辑,只负责数据的展示。 - **控制器(Controller)**:作为应用程序的协调者,处理用户请求,调用相应的模型执行业务操作,然后将结果传递给视图更新界面。控制器确保了用户交互和后端逻辑的解耦。 2. Struts 1.x与2.x比较: - **Action类不同**:在Struts 1.2中,Action类需要继承自特定基类,并且是单例且线程安全,这限制了Action的灵活性。而在Struts 2.0中,Action不再强制继承特定基类,而是可以选择继承ActionSupport,同时每个请求对应一个Action实例,降低了线程安全需求。 - **线程模式**:Struts 1.2的Action由于单例模式,需要开发者额外关注线程安全,而Struts 2.0通过实例化每个请求,简化了线程管理。 - **Servlet依赖**:Struts 1.2 Action依赖Servlet API,这意味着在容器中执行,而Struts 2.0 Action可以脱离容器进行测试,减少了对底层API的直接依赖。 - **可测试性**:由于Struts 1.2 Action的复杂性,测试变得困难,而Struts 2.0的分离式设计使得单元测试更加方便。 了解这些区别有助于面试者展示他们对不同版本Struts框架的理解,以及在实际项目中如何选择和使用它们来提高代码质量、可维护性和可测试性。同时,这也反映了面试者对面向对象设计原则和分层架构原则的掌握程度。在面试中,候选人可能还会被问及如何在SSH架构中进行事务管理、配置和性能优化等问题。