我最近在一次采访中被问到 - 在 java 中,您如何比较基于组件的框架和基于请求的框架?我将 EJB 解释为基于组件的框架的示例,将 Struts 解释为基于请求的框架,但我不相信我是否公正地回答了这个问题。
对于面试官的意思和应该比较的内容有什么想法吗?
问候, 阿瓦朱鲁格
最佳答案
他们最有可能在寻找 web 框架的示例 - 例如,JSF 是一个基于组件的框架,而 Struts 是一个基于请求的框架。
基于请求的框架通常通过其 API 清楚地表明它们正在解析 HTML 请求/生成 HTML 响应,而基于组件的框架试图将其抽象出来并将应用程序视为具有渲染器的组件集合和做事的行动。
在我看来,基于组件的 Web 框架比它们的值(value)要麻烦得多——它们的主要目的通常是让不熟悉 Web 开发的开发人员“更容易”开发 Web 应用程序,并且更接近于传统的桌面开发.但是,在实践中,当出现问题时,您需要开发自定义组件,需要为非“开箱即用”功能的东西自定义框架等。您需要了解底层的“传统”Web 开发和基于组件的框架如何对其进行抽象 - 如果您是一位经验丰富的 Web 开发人员并且拥有适用于“传统”Web 开发的现有解决方案、实用程序、库或片段,那么您将浪费时间重新实现它们以在基于组件的框架内工作。
关于基于 Java 组件与基于请求的框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1247627/