【SSH常见面试题详解】 SSH 是 Java Web 开发中三个著名框架 Struts、Hibernate 和 Spring 的简称。这些框架分别负责模型-视图-控制器(MVC)架构的不同部分,为开发人员提供了一种高效且可扩展的方式来构建企业级应用程序。 1. **Struts 实现 MVC** Struts 框架作为 MVC 设计模式的一种实现,其中: - **M(Model)**:由 JavaBean 或 EJB 组件或 POJO(Plain Old Java Object)构成,用于封装业务逻辑和数据。 - **C(Controller)**:Action 类扮演控制器角色,处理用户的请求并调用相应的业务逻辑。 - **V(View)**:通常是一组 JSP 文件及其标签,用于展示用户界面。 2. **Struts 中的关键对象** - **Action**:控制器类,接收用户请求,处理业务逻辑后转发到特定的视图。 - **ActionForm**:表单对象,用于收集用户输入的数据。 - **DynaValidatorForm**:动态表单,提供动态验证功能。 - **ActionMapping**:存储配置文件中 action 节点的信息,指定 Action 类和对应的视图。 3. **Hibernate 查询方式** Hibernate 支持三种查询数据的方式: - **HQL(Hibernate Query Language)**:面向对象的查询语言,类似于 SQL。 - **SQL 查询**:直接执行 SQL 语句,获取数据。 - **Criteria 查询**:提供一种基于对象的、类型安全的查询方式。 4. **load() 和 get() 的区别** - **load()**:假设数据一定存在,返回一个代理对象,延迟加载,只有在使用对象属性时才会查询数据库。如果数据不存在,抛出 `ObjectNotFoundException`。 - **get()**:立即查询数据库,如果数据存在返回对象,不存在则返回 null。它会检查一级和二级缓存。 5. **Spring 事务管理** - **事务方式**:声明式事务(基于注解或 XML 配置)和编程式事务(通过编码控制事务)。 - **隔离级别**:DEFAULT(使用数据库默认),READ_UNCOMMITTED(脏读可能),READ_COMMITTED(重复读可能),REPEATABLE_READ(幻影读可能),SERIALIZABLE(最安全但效率低)。 - **传播行为**:REQUIRED(必须有事务,无则新建),SUPPORTS(有则加入,无则非事务),MANDATORY(必须有事务,无则异常),REQUIRES_NEW(总是新建事务),NOT_SUPPORTED(有则挂起,无则非事务),NEVER(禁止事务),NESTED(嵌套事务)。 6. **Spring 中使用 Hibernate** Spring 通过 `HibernateTemplate` 提供对 Hibernate 的集成,提供 save, update, delete, find 等操作。如果配置了声明式事务,这些操作会自动在事务中执行。如果没有事务配置,操作可能不会立即持久化到数据库,除非 Hibernate 的 autocommit 设置为 true。 7. **Spring 事务接口与实现** Spring 事务管理分为声明式和编程式,通过 `PlatformTransactionManager` 接口管理事务,包括 HibernateTransactionManager、JdbcTransactionManager、DataSourceTransactionManager 等实现,提供 begin、commit 和 rollback 等方法。 8. **Hibernate 中的关联映射** Hibernate 支持不同类型的关联映射,如: - **一对一(OneToOne)** - **一对多(OneToMany)** - **多对一(ManyToOne)** - **多对多(ManyToMany)**,通过中间表实现。 9. **JSP 请求转发** 在 JSP 中使用 `<jsp:forward>` 标签实现请求转发,例如: ```jsp <jsp:forward page="jspForward2.jsp" /> ``` 10. **JSP 输出结果** 第二次访问 JSP 时,由于 JSP 页面中的变量 a 是局部变量,每次请求都会重新初始化,因此输出结果取决于 JSP 中的其他代码和用户交互。 SSH 面试题涵盖了许多核心概念,理解并掌握这些知识点对于Java Web开发者来说至关重要。了解和熟练应用 Struts 的 MVC 分离、Hibernate 的对象关系映射和事务管理,以及 Spring 的依赖注入和事务处理,能够帮助开发者构建更健壮、高效的应用程序。




















剩余7页未读,继续阅读

- Twilight2012-10-17内容还算全面。
- finders2016-02-17内容挺多,高阶点的问题比较少。
- cdguogang2012-08-19内容还算全面。有struts 中action是否是线程安全问题,hibernate查询的几种方式、延迟加载,spring的内容比较少。

- 粉丝: 749
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- vcos_components_configs-智能车资源
- 中职计算机教学中存在的问题及对策探思.docx
- 数字图像处理实验指导说明书zqd.doc
- lanqiao-蓝桥杯资源
- 汇编语言-汇编语言资源
- 通信工程中多网融合技术的探析.docx
- 基于华为云计算技术的多课程教学平台的构建.docx
- cotParam-C语言资源
- klogging-C++资源
- VC数据挖掘在客户关系管理中的实际应用.doc
- (源码)基于Pytorch的CenterNet目标检测模型实现.zip
- 完成Java面向对象程序设计方案实验课的心得体会.doc
- 中职计算机蓝领人才培养的思考与探索.docx
- 海外工程项目管理面临的挑战与对策.docx
- 基于智慧城市的快递寄件系统研究.docx
- 人工智能改善生活.docx


