【发布时间】:2012-06-03 17:07:37
【问题描述】:
我是 java 新手(学习 JSF 和其他 JAVA EE 组件)并且有一个非常基本的问题。
当很多事情都可以用 Bean 完成时,为什么我们还需要一个 Servlet。 servlet 中有哪些无法通过 Bean 完成,或者如何在基于 Web 的应用程序中使用 Servlet 比 Beans 更好。
【问题讨论】:
标签: servlets managed-bean
我是 java 新手(学习 JSF 和其他 JAVA EE 组件)并且有一个非常基本的问题。
当很多事情都可以用 Bean 完成时,为什么我们还需要一个 Servlet。 servlet 中有哪些无法通过 Bean 完成,或者如何在基于 Web 的应用程序中使用 Servlet 比 Beans 更好。
【问题讨论】:
标签: servlets managed-bean
使用 JSF,您基本上已经在使用一个 servlet,即 FacesServlet,您很可能已经在 web.xml 中注册了它,以便让 JSF 运行。正是这个 servlet 消除了编写一堆 servlet 来执行重复任务的需要,例如收集请求参数、转换/验证它们、更新 javabean 属性、调用动作和导航到正确的视图。
在 JSF 中,您不需要创建额外的 servlet 来执行这些任务。您只需创建一个托管 bean 并将其声明为控制器,该控制器又将一个简单的 javabean 类作为模型绑定到视图中的 UI 组件。
但有时 JSF 过于矫枉过正或太难了,因为以前从未学过 JSF 并且只想要两个、三个或四个只有一个联系表的网页。 JSF 的学习曲线相对陡峭,这也需要对 HTTP servlet 有深入的了解。有了“plain vanilla” servlet 和 JSP,就更容易开发了。但是,每当站点超出其边界并且您开始复制粘贴/重构常见任务时,如果您事先选择了 MVC 框架,您会很高兴。
【讨论】:
Bean 用于表示您的数据。 应该使用 Servlet 来控制您的进程。
在 MVC(模型、视图、控制器)模式中,Bean 将是您的模型,它以数据为中心并代表您的数据,充当域对象或简单的数据结构。
Servlet 是调用正确模型并按正确顺序分派它们的控制器。它们可用于获取用户请求并将其转换为模型进行操作的正确输入。
我知道答案非常高级,但是尝试阅读 MVC 模式,你会更好地理解这个想法。
【讨论】: