当前位置: 首页 > 面试题库 >

Java使用JavaBeans的地方?

景才英
2023-03-14
问题内容

什么是JavaBean,为什么需要它?既然可以创建具有类和接口结构的所有应用程序?为什么我需要豆子?你能给我一些例子,在这些例子中,bean是必不可少的,而不是类和接口?

请在以下上下文中说明Bean的必要性:

  • Wep apps
  • Standalone apps

问题答案:

它们通常仅代表真实世界的数据。这是一个Javabean的简单示例:

public class User implements java.io.Serializable {

    // Properties.
    private Long id;
    private String name;
    private Date birthdate;

    // Getters.
    public Long getId() { return id; }
    public String getName() { return name; }
    public Date getBirthdate() { return birthdate; }

    // Setters.
    public void setId(Long id) { this.id = id; }
    public void setName(String name) { this.name = name; }
    public void setBirthdate(Date birthdate) { this.birthdate = birthdate; }

    // Important java.lang.Object overrides.
    public boolean equals(Object other) {
        return (other instanceof User) && (id != null) ? id.equals(((User) other).id) : (other == this);
    }
    public int hashCode() {
        return (id != null) ? (getClass().hashCode() + id.hashCode()) : super.hashCode();
    }
    public String toString() {
        return String.format("User[id=%d,name=%s,birthdate=%d]", id, name, birthdate);
    }
}

实施Serializable并不是强制性的,但是如果你希望能够在Java内存之外(例如,在硬盘中或通过网络)持久或传输Javabean,则实现非常有用。

例如,在DAO类中,你可以使用它创建用户列表,在其中将表的数据存储user在数据库中:

List<User> users = new ArrayList<User>();
while (resultSet.next()) {
    User user = new User();
    user.setId(resultSet.getLong("id"));
    user.setName(resultSet.getString("name"));
    user.setBirthdate(resultSet.getDate("birthdate"));
    users.add(user);
}
return users;

例如,在一个Servlet类中,你可以使用它来将数据从数据库传输到UI:

protected void doGet(HttpServletRequest request, HttpServletResponse response) {
    List<User> users = userDAO.list();
    request.setAttribute("users", users);
    request.getRequestDispatcher("users.jsp").forward(request, response);
}

例如,在一个JSP页面中,你可以通过EL(遵循Javabean约定)对其进行访问以显示数据:

<table>
    <tr>
        <th>ID</th>
        <th>Name</th>
        <th>Birthdate</th>
    </tr>
    <c:forEach items="${users}" var="user">
        <tr>
            <td>${user.id}</td>
            <td><c:out value="${user.name}" /></td>
            <td><fmt:formatDate value="${user.birthdate}" pattern="yyyy-MM-dd" /></td>
        </tr>
    </c:forEach>
</table>

是否有意义?你会发现,这是一种约定,你可以在任何地方使用它来存储,传输和访问数据。



 类似资料:
  • 问题内容: 曾经有一个JavaBeans ActiveX Bridge, 但是AFAIK在Java 8中不再受支持。 我想从Excel调用JavaBeans,那么Java 8的处理方式是什么? 问题是我在Excel VBA中使用的dll中打包了一些旧版JavaBean。我没有此bean的源代码。但是我仍然想在Java 8/9中使用它。这可能吗? 问题答案: 我使用Obba解决了问题:我使用Java

  • 问题内容: 在Java程序中,我有一个要基于特定属性过滤的bean列表。 例如,假设我有一个Person列表,一个JavaBean,其中Person具有许多属性,其中包括“名称”。 我也有一个名字列表。 现在,我想查找姓名在姓名列表中的所有人员。 使用Google Guava执行此过滤器的最佳方法是什么? 到目前为止,我已经考虑过将Guava与Apache beanutils结合使用,但这似乎并不

  • 问题内容: 有时,每当我重新启动基于Java Struts Mysql和Jboss 4.05版本构建的应用程序时,都会收到以下错误消息: 地址已在使用中:JVM_Bind 我知道的唯一解决方法是重新启动计算机,然后重试,它将起作用。否则,有时我执行Ctrl-Alt-Del并停止所有与Java相关的过程,有时这也可行。 但是,确切的原因是什么,我们如何预防这个问题呢? 问题答案: 已使用的地址:JV

  • 在我开始之前,我想让每个人都知道,我确实花了很多时间在谷歌上搜索,找到了很多解释和定义。但即便如此,在花了几个小时阅读后,这个主题仍然显得相当模糊。我知道我必须问一些能让社区变得更好的问题,但是这个问题只是让我看看我是否对JavaBeans有清晰的理解。 据我所知,JavaBean基本上与任何其他java类一样都是一个类,只是它遵循某些约定,即: 类必须实现可序列化 假定类属性是私有的,并且它们的

  • 问题内容: DTO,VO,POJO,JavaBeans之间的区别? 问题答案: JavaBeans JavaBean是遵循Sun定义的JavaBeans约定的类。Wikipedia很好地总结了什么是JavaBean: JavaBean是Java的可重用软件组件,可以在构建器工具中直观地对其进行操作。实际上,它们是用Java编程语言编写的,符合特定约定的类。它们用于将许多对象封装到单个对象(bean

  • 我希望在连接到wifi网络时,在运行我的应用程序的手机上获取用户的本地IPv4地址。使用以下代码: 我可以得到一些接近IPv4地址的信息,但与命令行中的IPv4地址相比,它并不完全相同。有更好的办法吗?我知道formatIpAddress已被弃用,但在我找到获取IPv4地址的方法之前,我暂时不太担心这个问题。 编辑: 我发现手机wifi设置中的ip地址是我在使用建议的解决方案获取ip地址时得到的。