豆有什么意义?

时间:2010-11-25 10:13:52

标签: java jsp java-ee javabeans

我正在做一些JSP教程,我不明白bean类的意义。它只是获取和设置方法。为什么我们使用它们?

public class UserData {

String username;
String email;
int age;

public void setUsername( String value )
{
    username = value;
}

public void setEmail( String value )
{
    email = value;
}

public void setAge( int value )
{
    age = value;
}

public String getUsername() { return username; }

public String getEmail() { return email; }

public int getAge() { return age; }

}

和jsp是

<jsp:useBean id="user" class="user.UserData" scope="session"/> 
<HTML>
<BODY>
You entered<BR>
Name: <%= user.getUsername() %><BR>
Email: <%= user.getEmail() %><BR>
Age: <%= user.getAge() %><BR>
</BODY>
</HTML>

6 个答案:

答案 0 :(得分:11)

  1. Bean获得了Java“一次编写,随处运行”范例的所有好处。 暴露给应用程序的Bean的属性,事件和方法 构建工具可以控制。

  2. Bean可能被设计为在不同的语言环境中正确运行,这使得它成为可能 在全球市场中有用。

  3. 可以提供辅助软件来帮助人配置Bean。这个软件是 仅在设置该组件的设计时参数时才需要。它 不需要包含在运行时环境中。 Bean的配置设置可以保存在持久存储中并恢复 晚些时候。

  4. Bean可以注册以接收来自其他对象的事件,并可以生成事件 被发送到其他对象。

  5. 使用 scriptlet (那些<% %>事物)确实非常气馁,因为taglibs(如JSTL)和EL(Expression Language的诞生,那些十多年前的${}事。 scriptlet 的主要缺点是:

    1. 可重用性:您无法重用scriptlet。

    2. 可替换性:您不能将scriptlet抽象化。

    3. OO-ability:你不能使用继承/组合。

    4. 可调试性:如果scriptlet中途抛出异常,你得到的只是一个空白页面。

    5. 可测试性:scriptlet不可单元测试。

    6. 可维护性:每个saldo需要更多时间来维护混杂/混乱/重复的代码逻辑。

答案 1 :(得分:5)

JavaBeans的主要原因是可重用性。 JavaBeans可以在JSP,Servlet和其他Java技术中使用。

这是一个简单的可序列化对象,用于将许多对象封装成一个。即,我们可以发送一个完全定义的bean,以便通过线路单独发送每个属性。

答案 2 :(得分:3)

访问器(getter)和mutator(setter)方法通常用于提供封装。由于实例变量是私有的,因此只能通过这些方法在类外部访问。

所以外行:在不破坏使用代码的其他人的代码的情况下,在实施代码中进行更改的能力是封装的关键优势

答案 3 :(得分:2)

我正在阅读JavaFX Properties and Binding那里我几乎认为JavaBeans是段落的意思。

  

Java编程语言可以封装数据   在一个对象中,但它不强制执行任何特定的命名   您定义的方法的约定。例如,您的代码   可以定义一个Person类,它封装了一个名字和一个   姓。但是没有命名约定,不同的程序员可能会   为这些方法选择不同的名称:read_first(),firstName(),   getFN()等都是完全有效的选择。但是,有   不保证这些名称对其他开发者有意义。

     

JavaBeans组件架构解决了这个问题   定义一些简单的命名约定,以实现一致性   项目。在JavaBeans编程中,这些是完整的签名   方法是:public void setFirstName(String name),public String   getFirstName(),public void setLastName(String name)和public   String getLastName()。这两种命名模式都很容易识别   人类程序员和编辑工具,例如NetBeans IDE。   在JavaBeans术语中,Person对象据说包含   firstName和lastName属性。

     

JavaBeans模型还提供对复杂属性类型的支持,   加上一个事件传递系统。它还包含一些支持   类,都可以作为java.beans包下的API使用。   因此,掌握JavaBeans编程需要学习   必需的命名约定及其相应的API。 (更多   有关JavaBeans的背景阅读,请参阅JavaBeans课程   Java教程)。

答案 4 :(得分:1)

你可以拥有没有bean的JSP,但结果是,处理逻辑的代码和处理网站美观的代码都会混乱。这并不理想,特别是因为在大多数情况下,一群人编码逻辑而另一群人负责美学,因此豆子允许一定程度的分离,这使得建立网站的人们的生活更加轻松。

Beans还允许您重用代码,这是您应该使用它们的另一个原因。

答案 5 :(得分:1)

主要用于REUSABILTY。它是一个简单的可序列化对象,用于将许多对象封装为一个。