4

我是 java 新手(学习 JSF 和其他 JAVA EE 组件)并且有一个非常基本的问题。

当很多事情都可以用 Bean 完成时,为什么我们需要一个 Servlet。servlet 中有什么不能通过 Bean 完成,或者如何在基于 Web 的应用程序中使用 Servlet 比 Beans 更好。

4

2 回答 2

7

使用 JSF,您基本上已经在使用 servlet,FacesServlet您很可能已经在web.xml自己中注册了该 servlet,以便让 JSF 运行。正是这个 servlet 消除了编写一堆 servlet 来执行重复任务的需要,例如收集请求参数、转换/验证它们、更新 javabean 属性、调用操作和导航到正确的视图。

在 JSF 中,您不需要创建额外的 servlet 来执行这些任务。您只需创建一个托管 bean 并将其声明为控制器,该控制器又将一个简单的 javabean 类作为模型绑定到视图中的 UI 组件。

但有时 JSF 过于矫枉过正或太难了,因为以前从未学过 JSF,只想要两个、三个或四个只有一个联系表的网页。JSF 的学习曲线相对陡峭,这也需要对 HTTP servlet 有深入的了解。有了“plain vanilla” servlet 和 JSP,就更容易开发了。但是,每当站点超出其边界并且您开始复制粘贴/重构常见任务时,如果您事先选择了 MVC 框架,您会很高兴。

于 2012-06-03T21:44:00.970 回答
4

Beans 用于表示您的数据。应该使用 Servlet 来控制您的进程。

在 MVC(模型、视图、控制器)模式中,Bean 将是您的模型,它以数据为中心并代表您的数据,充当域对象或简单的数据结构。

Servlet 是调用正确模型并按正确顺序分派它们的控制器。它们可用于获取用户请求并将其转换为模型进行操作的正确输入。

我知道答案非常高级,但是尝试阅读 MVC 模式,您会更好地理解。

于 2012-06-03T17:15:07.127 回答