JavaBean与Servlet的区别

25

我正在搜索JavaBean和Servlet之间的区别。我找到了

Servlet corresponds a Controller
JavaBean corresponds a Model

Java Bean 是可重用组件,而 Servlet 则是扩展服务器能力的 Java 程序。

那么,在 JavaBean 中,可重用的意思是什么?难道我们不能重用 Servlet 吗?

如果有人能举几个例子来解释一下,我将不胜感激。


它们的区别在于它们不可能在一个月的星期天相同。这不是一个真正的问题。 - user207421
3
@EJP,这就是为什么我在问它们之间的区别。如果它们不同,那么我相信,解释它们的不同之处会更加容易。?? - Ravi
5个回答

31

Servlets和JavaBeans是完全不同的概念。Servlet API提供了服务于互联网请求的功能,通常来自客户端浏览器,但不限于此。 JavaBeans是一种封装功能的组件架构。一个典型的用途是由Servlet使用的Bean来处理数据库查询,但Bean架构在许多地方都被使用。

会话是存储与特定用户相关对象的Servlet机制,这些对象可能是Bean,也可能不是。用于创建用户界面(使用您聪明的IDE)的Bean具有更严格的要求。在Servlet和JSP中使用的Bean通常更简单。

更直白地说,JavaBeans对于Java就像ActiveX控件对于Microsoft一样。JavaBeans可以在服务器端、客户端、applet内部等运行。

因此,除了Java之外,它们没有任何共同点。


18

JavaBeans和Servlet都是Java EE(Java Enterprise Edition)包的概念,发布于1999/2000年。

Servlet是Java Web应用程序中使用的Java类(作为Controller)。它的作用是管理HTTP请求并生成HTTP响应。Servlet使用JavaBeans从数据库获取信息。

JavaBean是一个简单的Java类,用于表示应用程序的模型。要称之为JavaBean,该类必须具有公共getter和setter来访问所有属性,必须具有无参构造函数,并且必须可序列化。

值得注意的是,这种简单的JavaBean概念在2000年初转移到了企业级Java Bean(EJB)。但是经验证明,在Java EE环境中管理EJB相当复杂。因此,企业级JavaBeans主要被“Pojos”(普通旧Java对象)所取代,这些对象由IOC容器(例如Spring于2003年推出)普及。IOC将JavaBean拉回到其原始概念。IOC将整个EJB-J2EE模板模式、服务定位器、业务代理模式替换为简单的依赖注入(DI)。


8

它们是两个完全不同的东西。

Servlet 用于处理 Web 应用程序中的请求,因此与控制器类似。

Java Bean 是遵循一组规则的任何 Java 类,参见:什么是“Java Bean”?

我猜你正在阅读的内容告诉你它们如何适配 MVC 模式。


你的意思是,它们两个是不同的东西吗?那么,你能详细说明一下这两个术语吗?我的意思是,它们是什么,我们在哪里需要它们? - Ravi
JavaBean - 阅读问题中的链接,servlet,阅读这个:http://docs.oracle.com/javaee/5/tutorial/doc/bnafe.html 但实质上,一个servlet用于处理Web应用程序中的HTTP请求。 - cowls

1
  • Servlet的生命周期由Web容器管理,在Java Bean的情况下,您需要初始化或启动Java Bean。

  • 有两种类型的servlet,通用servlet支持不同类型的协议请求,而HTTPServlet支持HTTP协议。

  • 在大多数框架(如Struts / Spring)中,它们使用servlet作为控制器来接收请求调用,并根据配置将其转发到不同的Action Class / Action Controller。


0
Java Bean是一个数据访问对象,用于与数据库进行交互。Java Bean是POJO(Plain Old Java Object)的一种形式。Servlet与JSP一起使用,就像JSP的接口一样。Java Bean和Servlet都是MVC的一部分。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接