Java程序员面试必备:SSM框架与面向对象深度解析

版权申诉
0 下载量 151 浏览量 更新于2024-07-03 收藏 1.45MB PDF 举报
"Java程序员2016最新面试题SSM面向对象,这份文档包含了全面且重要的面试题目,尤其关注Struts2与Struts1的对比、Struts2的核心概念以及ActionSupport的作用,同时提到了模型驱动和属性驱动的相关内容。" 在Java Web开发领域,SSM框架(Spring、Struts2、MyBatis)是常用的一种集成解决方案,而Struts2作为其中的MVC框架,其理解与应用是面试中常见的考察点。以下将详细阐述文档中提及的知识点: 1. **Struts2与Struts1的联系与区别**: - **联系**:两者都属于MVC框架,旨在简化Web应用程序的开发。 - **区别**: - 核心控制器:Struts1基于Servlet,而Struts2使用过滤器(Filter)作为核心控制器,位置更高。 - 依赖性:Struts1对Servlet API有强依赖,而Struts2则独立于Servlet API。 - Action实例管理:Struts1使用单例模式,Struts2为每个请求创建新实例。 - 表达式语言:Struts2支持更强大的OGNL(Object-Graph Navigation Language)表达式。 - 类型转换:Struts2支持双向类型转换,而Struts1仅支持页面到ActionForm的单向转换。 - 验证机制:Struts2允许针对特定方法的验证,且提供框架级别的验证。 - 拦截器:Struts2引入拦截器,增强了功能扩展,如权限控制。 - 国际化:Struts2提供更灵活的国际化资源文件管理。 - 视图支持:Struts2支持多种视图技术。 2. **Struts2的核心与思想**: - Struts2的核心是拦截器(Interceptor),几乎所有的核心功能都通过拦截器实现。 - 这种设计体现了AOP(面向切面编程)的思想,使得开发者可以插入自定义的行为,如日志、事务处理等,而无需侵入业务逻辑代码。 3. **继承ActionSupport的原因**: - ActionSupport是Struts2提供的一种基础Action类,它实现了Action接口并提供了许多便利功能。 - 实现国际化:ActionSupport中的`getText(String key)`方法用于从资源文件中获取国际化信息。 - 提供预定义的常量:如success、error、login、input和none,方便结果处理。 4. **模型驱动与属性驱动**: - **模型驱动**:模型对象包含所有业务数据,Action类仅负责控制流程,模型对象可以直接传递给视图层展示。这种模式降低了Action类的复杂性,但可能导致视图层直接操作模型,增加了耦合。 - **属性驱动**:Action类持有业务数据,视图直接从Action中获取数据。这种方式简单直接,但Action类可能变得庞大,不易维护。 - 使用模型驱动时应注意的问题: - 确保模型对象与Action之间的职责清晰。 - 避免在视图中直接修改模型对象,以保持数据的完整性。 - 正确处理模型对象与Action之间的数据绑定和验证。 以上内容是Java程序员在面试中可能会遇到的Struts2相关问题,了解这些知识点有助于准备面试和提升实际开发能力。在准备面试时,除了理论知识,还要熟练掌握实践操作,例如配置文件的编写、异常处理、拦截器的编写等,这样才能全面展现自己的技能。