SSH面试知识点精讲:从原理到优化策略

需积分: 4 14 下载量 171 浏览量 更新于2024-09-20 收藏 180KB DOC 举报
"SSH面试题总结" SSH面试题总结涵盖了多个关键知识点,主要涉及Hibernate、Struts等Java Web开发中的重要框架。以下是这些面试题所体现的重要知识点的详细解释: 1. **Hibernate工作原理**: Hibernate是Java中的一款流行的对象关系映射(ORM)框架,它通过将Java类与数据库表映射,简化了数据库操作。其工作流程大致如下: - 首先,读取并解析配置文件(如hibernate.cfg.xml),设置数据库连接信息。 - 然后,解析映射文件(hbm.xml或注解),建立SessionFactory对象,这是所有Session的工厂。 - 打开Session,Session是与数据库交互的主要接口,负责CRUD操作。 - 创建事务Transaction,确保数据库操作的原子性和一致性。 - 进行持久化操作,如保存、更新、删除、查询对象。 - 提交事务,完成数据库的更改。 - 关闭Session,释放资源。 - 最后,关闭SessionFactory。 2. **Hibernate的优势**: - 封装了JDBC,减少手动编写SQL和处理结果集的工作。 - 是一个主流的ORM框架,简化DAO层代码。 - 性能高效,因为它是轻量级框架。 - 支持多种数据库和复杂的对象关系映射。 3. **Hibernate的延迟加载**: 延迟加载是一种优化策略,只有在真正需要对象时才会加载。它包括实体延迟加载、集合延迟加载和属性延迟加载。这可以避免在启动时一次性加载大量数据,提高系统性能。 4. **Hibernate的缓存机制**: - 一级缓存:每个Session内部都有一个缓存,生命周期与Session相同,关闭Session时,缓存内容被清除。 - 二级缓存:独立于Session,可跨Session共享数据,但默认不开启,需要配置。 5. **Hibernate的查询方式**: - 本地SQL查询:直接执行SQL语句。 - Criteria查询:提供更面向对象的查询方式,无需写SQL。 - HQL(Hibernate Query Language):面向对象的查询语言,类似SQL。 6. **Hibernate优化技巧**: - 双向一对多关联优于单向,减少额外的查询。 - 避免一对一关系,多用多对一,减少冗余数据。 - 合理配置缓存,根据需求选择对象缓存或集合缓存。 7. **Struts工作机制**: Struts是MVC(模型-视图-控制器)架构的一部分,主要用于处理HTTP请求。其工作流程大致如下: - 用户发起HTTP请求,请求到达ActionServlet。 - ActionServlet解析请求,找到对应的Action Mapping。 - 调用Action类的方法,处理业务逻辑。 - Action返回一个ActionForward,定义视图的跳转。 - 根据ActionForward,DispatcherServlet将控制权交给指定的JSP或其他视图组件。 - 视图显示结果,用户看到反馈。 8. **使用Struts的原因**: - 结构清晰,遵循MVC设计模式,易于维护和扩展。 - 提供了丰富的验证和国际化支持。 - 与其他Java EE组件(如Hibernate)集成良好。 以上是SSH面试题中涉及的主要技术点的详细解释,涵盖了Hibernate的核心概念、优化策略以及Struts的工作原理和优势。这些知识点对于理解和使用这些框架至关重要,也是Java Web开发者应具备的基础技能。