深入理解JAVA-SSH架构与Struts1.2与2.0的区别

需积分: 9 7 下载量 141 浏览量 更新于2024-07-27 1 收藏 191KB DOC 举报
Java-SSH(Model-View-Controller)面试题是IT行业面试过程中常见的一个问题,特别是针对Java开发者的经典知识点。SSH(Spring、Struts、Hibernate)组合通常被用于企业级Java Web应用开发,它分别代表了不同的组件: 1. MVC架构理解: MVC是Model-View-Controller模式的缩写,这是一种软件设计模式,它将应用程序的逻辑分为三个独立的部分: - **模型(Model)**:负责处理业务逻辑和数据,通常包含JavaBean或POJO对象,它们与数据库交互并处理业务规则。 - **视图(View)**:用户界面层,负责展示数据给用户,接收用户的输入,与模型解耦,只关注显示部分,不涉及业务处理。 - **控制器(Controller)**:处理用户请求的核心,接收来自视图的请求,调用模型进行业务处理,然后根据处理结果更新视图。 2. Struts框架比较(Struts 1.x vs Struts 2.x): - **Action类的不同**:Struts 1.2要求Action继承Action基类,而Struts 2.0则建议继承ActionSupport,简化了编程模型。 - **线程模式**:Struts 1.2中的Action是单例且线程安全,这在多线程环境中可能带来额外的复杂性和性能开销;而Struts 2.0采用的是每个请求一个Action实例的方式,避免了线程安全问题。 - **Servlet依赖**:Struts 1.2依赖Servlet API,而Struts 2.0更加灵活,Action不再直接依赖容器,允许离线测试,但仍然可以通过需要访问Request和Response。 - **可测试性**:Struts 1.2的Action测试通常较为困难,因为与Servlet紧密集成,而Struts 2.0通过提供更模块化的结构,提高了Action的可测试性。 在面试中,面试官可能会考察应聘者对这些模式和框架的理解深度,包括如何在实际项目中应用它们,如何优化性能,以及在不同版本之间选择和迁移策略。掌握SSH框架的原理和实践能力,对于Java开发者来说是提升核心竞争力的关键要素。