Java学习笔记(九)——javabean

【前面的话】

      实际项目在用spring框架结合dubbo框架做一个系统,虽然也负责了一块内容,但是自己的能力还是不足,所以还需要好好学习一下基础知识,然后做一些笔记。自己的自学能力还是显得不够好,每次静下心的时间持续的不够多,要好好锻炼自己的自学能力。

      学习过程中的小知识点总结,基础知识,选择阅读

javabean定义】

定义JavaBeans是Java语言中可以重复使用的软件组件,实质上是一种特殊的Java类。特点是可序列化,提供无参构造器,提供getter方法和setter方法访问对象的属性。

优点:

  1. Bean可以控制它的属性、事件和方法是否暴露给其他程序。
  2. Bean可以接收来自其他对象的事件,也可以产生事件给其他对象。
  3. 有软件可用来配置Bean。
  4. Bean的属性可以被序列化,以供日后重用。

规范:要成为JavaBean类,则必须遵循关于命名、构造器、方法的特定规范。有了这些规范,才能有可以使用、复用、替代和连接JavaBeans的工具。

  1. 有一个公有的无参构造器。(java核心技术上面说:大多数开发工具要求每一个bean都具备一个默认的构造器,这样他们才能在没有构造参数的情况下初始化bean)
  2. 属性可以通过get、set、is(可以替代get,用在布尔型属性上)方法或遵循特定命名规范的其他方法访问。
  3. 可序列化。

【两段代码】

  Javabean有两种使用方式:(当作普通的类来使用或者在 jsp 中页面处理时有特殊的标记符处理方式)

  • 嵌入 java 代码方式
  • 使用 jsp 标记符方式

   1. 嵌入 java 代码方式(java核心技术上面说:最简单的bean与一个java类没什么任何区别,只不过其方法采用了某种严格的命名惯例罢了)

   下面就是这样一个简单的使用:

  • BeanTest.java
 1 public class BeanTest {
 2  
 3     public int getId() {
 4         return id;
 5      }
 6      public void setId(int id) {
 7          this.id = id;
 8      }
 9      public String getName() {
10          return name;
11      }
12      public void setName(String name) {
13           this.name = name;
14      }
15      public String getPassword() {
16           return password;
17      }
18      public void setPassword(String password) {
19           this.password = password;
20      }
21      private int id;
22      private String name;
23      private String password;
24  
25 }
View Code
  • Maintest.java
 1 public class Maintest {
 2     public static void main(String[] args){
 3         BeanTest beantest1=new BeanTest();
 4         beantest1.setId(1234567);
 5         beantest1.setName("帅哥");
 6         beantest1.setPassword("123456");
 7         System.out.println(beantest1.getId());
 8         System.out.println(beantest1.getName());
 9         System.out.println(beantest1.getPassword());
10     }
11 }
View Code
  • 运行结果:
1 1234567
2 帅哥
3 123456
View Code

   2.  使用 jsp 标记符方式

  • 基础知识

     1)在jsp中构建一个新bean——jsp:useBean

      <jsp:useBean  id="beanName"  class="package.Class"  />

      例如:

     <jsp:useBean  id="book1"  class="coreservlets.Book" />

     等价于下列jsp语句(jsp文件中,使用<% %>里面包含的就是java语句

     <% coreservlets.Book   book1 = new   coreservlets.Book(); %>

    2)读取或者输出bean属性的值——jsp:getProperty

    <jsp:getProperty  name="beanName"  property="propertyName"  />

    例如:

    <jsp:getProperty  name="book1"  property="title" />

    等价于---

    <%= book1.getTitle() %>

    3)修改bean的属性——jsp:setProperty

    <jsp:setProperty  name="beanName" property="propertyName" value="propertyValue" />

   例如:

    <jsp:setProperty  name="book1"  property="title"  value="Core Servlets and JavaServer Pages" />

    等价于----

    <% book1.setTitle("Core Servlets and JavaServer Pages"); %>

  • 代码:

    1)JavaBeanTest .java

     这段代码就是一个简单的网页,显示怎么在jsp网页上面使用javabean。在eclipse中创建一个Dynamic Web Project.当然你要使用服务器。

 1 package com;
 2 public class JavaBeanTest {
 3    public String getName() {
 4        return name;
 5     }
 6  
 7     public void setName(String name) {
 8         this.name = name;
 9     }   
10      public String getAge() {
11         return age;
12     }
13  
14     public void setAge(String age) {
15         this.age = age;
16     }
17  
18     public String getAddress() {
19         return address;
20     }
21  
22     public void setAddress(String address) {
23         this.address = address;
24     }
25  
26     private String name;
27     private String age;
28     private String address;
29 }
View Code

   2)JavaBean.jsp

 1 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
 2     pageEncoding="ISO-8859-1"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 401 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 7 <title>javabeantest</title>
 8 </head>
 9 <body>
10   <jsp:useBean id="javabeanTest" class="com.JavaBeanTest"></jsp:useBean>
11   <jsp:setProperty property="name" name="javabeanTest" value="TT"/>
12   <jsp:setProperty property="age" name="javabeanTest" value="20"/>
13   <jsp:setProperty property="address" name="javabeanTest" value="beijing"/>
14   
15   <jsp:getProperty property="name" name="javabeanTest"/><br>
16   <jsp:getProperty property="age" name="javabeanTest"/><br>
17   <jsp:getProperty property="address" name="javabeanTest"/><br>
18 </body>
19 </html>
View Code
  •  运行结果:

    其实在jsp中使用还有一些更为复杂的东西,但是这里是入门技术,就以上。

javabean持久化】

   JavaBean的持久化可以考虑三种方式:数据库、XML文件、二进制流

   第一种方式可以使用O/R Mapping技术将一个JavaBean映射到关系数据库中的表;

   第二种方式可以使用JAVA1.4 的java.beans.XMLDecoder/java.beans.XMLEncoder将Bean映射到一个XML文件中;

   第三种方式要求Bean实现Java的Serializable接口;这里测试了一下用第二种方式的持久化。

   具体涉及到的知识点后面在学习,这篇文章就到这里。

【参考资料】

  1. http://www.cnblogs.com/kkgreen/archive/2011/04/19/2021621.html

【后面的话】

     还是总结以下这篇文章,学习了什么是javabean,javabean的两种简单使用方式。简单说明了javabean的持久化。以后有时间了在学习学习EJB,使用javabean的持久化写一些demo。

分享:

      1. 这世上有这么一类人,念书的时候按部就班,初中高中啥都不想,默默考了大学,可能考的也还不错,选专业要么听父母,要么是从众,这也无所谓,但是对于未来一无所知,也没想过,接着大学依然按部就班,上课听讲下课作业,平时轻松考前恶补,没想过拿奖,没热爱过专业,没做过实习,没主动去试着尝试点项目,哪怕连最普通的自学都没做过,就这么稀里糊涂的混了三四年,快毕业觉得社会恐惧工作难找,于是又认为这是学历还不够高的问题,于是又去考了研

     反思:这说的是我吗?说的是我吗?说的是我吗?

     2. 不成熟的男人不理性地认为理性可以解决一切问题,成熟的男人理性地看待人类理性与感性的共存。

——TT

 

原文地址:https://www.cnblogs.com/xt0810/p/3560289.html