Struts2面试精华:经典问题与工作流程详解

需积分: 9 0 下载量 33 浏览量 更新于2024-09-09 收藏 21KB DOCX 举报
Struts2 是一个基于 Java 的开源 Web 框架,它是 Struts 1 的后续版本,由 WebWork 项目演变而来,旨在提供更灵活、面向对象的开发体验。本文档详细记录了作者在 Struts2 面试中遇到的问题,涉及到了 Struts1 和 Struts2 之间的主要区别、核心组件以及它们的工作流程。 首先,我们来看看Struts1 和 Struts2 的主要区别: 1. 组件不同: - Struts1 使用 ActionServlet 进行请求处理,包括 process() 方法,而 RequestProcessor 负责预处理。 - Struts1 中的关键类有 PlugIn、Action、ActionForm、ActionForward、ActionMapping 等,配置通常在 struts-config.xml 文件中完成。 - Struts2 则引入了 FilterDispatcher,取代了 ActionServlet,并且 Action 类使用的是 ActionSupport 和 ServletActionContext,提供了 ModelDriven 和 MethodFilterInterceptor 等拦截器。 2. 工作流程: - Struts1 工作流程包括:发布 StrutsWeb 服务,初始化 ActionServlet,根据 web.xml 配置处理请求,将参数传递到 Formbean,设置 session,然后查找并执行指定 Action,最后根据 Action 返回的 forward 转向下一个页面。 - Struts2 的工作流程则是:客户端发送请求 -> 通过 Filter(如 ActionCleanUp 和 FilterDispatcher)过滤 -> FilterDispatcher 根据 URL 后缀判断是否需要调用 Action -> 如果需要,ActionMapper 决定调用哪个 Action -> Action 处理请求,可能经过拦截器处理,最终响应结果可能是转发到另一个 Action 或 JSP 页面。 Struts2 的核心组件和工作流程更加模块化和面向切面编程,减少了对 XML 配置的依赖,使得代码更易于维护和扩展。在实际应用中,Struts2 提供了更强的控制和灵活性,比如通过注解简化 Action 的配置,以及支持依赖注入和拦截器等功能。 面试者可能会考察应聘者对 Struts2 的理解,包括其架构优势、核心组件的使用、工作原理以及与 Struts1 的继承和改进之处。熟悉这些知识点,对于准备 Struts2 相关的面试至关重要。同时,掌握 Struts2 的实际开发经验和案例分析也会增加面试成功的几率。
qq_30174949
  • 粉丝: 0
  • 资源: 2
上传资源 快速赚钱