Struts面试题

2025年3月16日 | 阅读3分钟

这里提供了一些经常被问到的 Struts 面试题及答案,这些问题在许多公司中被问及。让我们来看看 Struts2 的顶级面试题列表。


1) 什么是 Struts?

Struts 是一个用于开发 MVC 模式框架的框架。Struts2 是 Webwork 和 struts1 框架的结合。 更多详情...


2) struts1 和 struts2 之间有什么区别?

编号。Struts1Struts2
1)Action 类不是 POJO。你需要继承抽象类。Action 类是 POJO。你不需要继承任何类或实现任何接口。
2)前端控制器是 ActionServlet。前端控制器是 StrutsPrepareAndExecuteFilter。
3)它在处理请求时使用 RequestProcessor 类的概念。它在处理请求时使用拦截器(Interceptors)的概念。
4)它只有 JSP 作为视图组件。它有 JSP、Freemarker、Valocity 等作为视图组件。
5)配置文件名可以是 [任何名称].xml,并放置在 WEB-INF 目录中。配置文件必须是 struts.xml,并放置在 classes 目录中。
6)Action 和 Model 是分开的。Action 和 Model 在 action 类中合并。

3) Struts 的特性有哪些?

  • 配置 MVC 组件
  • 基于 POJO 的 Action
  • AJAX 支持
  • 多种标签支持
  • 多种结果类型
  • 集成支持
更多详情...

4) 什么是 MVC?

MVC 是一个设计模式。MVC 代表 Model(模型)、View(视图)和 Controller(控制器)。模型代表数据,视图代表表示,控制器充当模型和视图之间的接口。

mvc architecture

更多详情...


5) 什么是拦截器(Interceptor)?

拦截器是一个在请求的预处理和后处理时调用的对象。它是可插入的。 更多详情...


6) 拦截器的生命周期方法有哪些?

  • public void init()
  • public void intercept(ActionInvocation ai)
  • public void destroy()
更多详情...

7) 什么是 ValueStack?

ValueStack 是一个栈,其中包含应用程序特定的对象,如 Action 和其他模型。 更多详情...


8) 什么是 ActionContext?

ActionContext 是一个 Action 执行所在的容器。它对每个线程是唯一的。 更多详情...


9) 什么是 ActionInvocation?

ActionInvocation 负责调用 Action。它持有 Action 和拦截器对象。 更多详情...


10) 什么是 OGNL?

OGNL 是 struts2 的表达式语言。它代表 Object Graph Navigation Language(对象图导航语言)。 更多详情...


11) Action 接口的 5 个常量是什么?

  1. SUCCESS
  2. ERROR
  3. INPUT
  4. 登录
  5. NONE
更多详情...

12) params 拦截器做什么?

params(也称为 parameters)拦截器将所有参数设置到 ValueStack 上。 更多详情...


13) execAndWait 拦截器做什么?

execAndWait(也称为 ExecuteAndWait)拦截器用于显示中间或等待结果。 更多详情...


14) modelDriven 拦截器做什么?

modelDriven 拦截器将其他模型设为 ValueStack 的默认对象。默认情况下,Action 是 ValueStack 的默认对象。 更多详情...


15) validation 拦截器做什么?

validation 拦截器执行验证检查,并添加字段级和 Action 级的错误消息。 更多详情...


16) 什么是捆绑验证器(bundled validators)?

  • requiredstring
  • stringlength
  • email
  • date
  • int
  • double
  • url
  • regex
更多详情...

17) plain-validator 和 field-validator 之间有什么区别?

在 plain-validator 中,一个验证器可以应用于多个字段。在 field-validator 中,多个验证器可以应用于一个字段。 更多详情...


18) jsonValidation 的用途是什么?

jsonValidation 拦截器用于执行异步验证。它与 validation 和 workflow 拦截器一起工作。 更多详情...


19) struts2 中的 Aware 接口有哪些?

Aware 接口用于在 request、session、application 和 response 对象中存储信息。下面给出了 4 个 Aware 接口:

  • ServletRequestAware
  • ServletResponseAware
  • SessionAware
  • ServletContextAware
更多详情...

20) i18n 拦截器做什么?

i18n 拦截器用于为 struts 应用程序提供多语言支持。 更多详情...