一、JavaBean的含义

JavaBean是使用Java语言开发的一个可重用组件,能使Html代码与JAVA代码分离,并节省开发时间,简单的说就是一个包含了setter和getter以及至少一个无参构造方法的JAVA类,在框架中或其他方面也管它叫做PO,VO,TO等。

例如:

package pojo;
     
    public class Person {
        private String name;
        private int age;
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getAge() {
            return age;
        }
        public void setAge(int age) {
            this.age = age;
        }
     
    }

二、JavaBean在jsp中的使用

写个简单的例子很容易明白

首先一个用一个页面传递参数,如下

<!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    </head>
    <body>
        <form action="getBean.jsp" method="post">
            <table border="1">
                <tr>
                    <td>
                    姓名:<input type="text" name="name"><br>
                    年龄:<input type="text" name="age">
                    </td>
                </tr>
                <tr>
                    <td>
                    <input type="submit" value="提交"> <input type="reset" value="重置">
                    </td>
                </tr>
            
            </table>
        </form>
    </body>
    </html>

然后写一个演示页面来封装参数并输出,代码如下(jsp:useBean以及jsp:setProperty标签的用法在注释中给出)

<%@ page language="java" contentType="text/html;"
        pageEncoding="UTF-8"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Insert title here</title>
    </head>
    <body>
    <%request.setCharacterEncoding("UTF-8"); %>
    <!-- 使用JAVABEAN id代表实例化对象的名称 -->
        <jsp:useBean id="person" scope="page" class="pojo.Person"></jsp:useBean>
    <!--name与jsp:useBean中声明的Id一一对应,*代表自动装配 ,填入属性值如name则只装配name的值 -->
        <jsp:setProperty name="person" property="*"></jsp:setProperty>
        <h3><%=person.getName() %></h3>
        <h3><%=person.getAge() %></h3>
        <!-- 可以使用param来指定参数内容非撞到那个属性内,如下输出颠倒 -->
        <jsp:setProperty name="person" property="name" param="age"/>
        <jsp:setProperty name="person" property="age" param="name"/>
        <h3><%=person.getName() %></h3>
        <h3><%=person.getAge() %></h3>
    </body>
    </html>

运行结果:

提交之后

至于我将年龄也写为数字的原因是,Person这个JavaBean中age是Int型,如果填入String,在演示将指定参数封装到属性的时候会出现java.lang.NumberFormatException,即数字类型转化错误。

三、JavaBean的原理

简单的说是依靠反射机制完成的,在jsp:useBean中也给出了具体的包.

JavaBean简介和用法的更多相关文章

  1. Cwinux简介及用法简述

    我在我的个人博客上发表了一篇文章 Cwinux简介及用法简述 http://apprentice89.com/cwinux_introduction_and_use/

  2. sleep、yield、join方法简介与用法 sleep与wait区别 多线程中篇(十五)

    Object中的wait.notify.notifyAll,可以用于线程间的通信,核心原理为借助于监视器的入口集与等待集逻辑 通过这三个方法完成线程在指定锁(监视器)上的等待与唤醒,这三个方法是以锁( ...

  3. javabean简介

    Javabean简介 JavaBean是一个可重复使用的软件组件.实际上JavaBean是一种Java类,通过封装属性和方法成为具有某种功能或者处理某个业务的对象,简称bean.由于javabean是 ...

  4. JavaBean简介及使用

    JavaBean简介及使用  望星空 https://blog.csdn.net/joywy/article/details/7773503   一.JavaBean简介 JavaBean是使用Jav ...

  5. linux c语言 fork() 和 exec 函数的简介和用法

    linux c语言 fork() 和 exec 函数的简介和用法   假如我们在编写1个c程序时想调用1个shell脚本或者执行1段 bash shell命令, 应该如何实现呢? 其实在<std ...

  6. C++中const简介及用法

    1.const简介 C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性,本人根据各方面查到的资料进行总结如下,期望对朋友们有所帮助. Const 是C++中常用的类型修饰 ...

  7. stringstream类的简介和用法

    一.简介 <sstream>类库定义了三种类:istringstream,ostringstream,stringstream.分别用来进行流的输入,流的输出,输入输出操作.在此演示str ...

  8. javabean 简介

    javabean其实包含多个方面的含义.   Java语言开发的可重用组件 优点:1,代码简洁.2,HTML与Java分离,好维护.3,将常用程序写成可重用组件,避免重复.   特点:1,所有类放在同 ...

  9. MySQL MERGE存储引擎 简介及用法

    MERGE存储引擎把一组MyISAM数据表当做一个逻辑单元来对待,让我们可以同时对他们进行查询.构成一个MERGE数据表结构的各成员MyISAM数据表必须具有完全一样的结构.每一个成员数据表的数据列必 ...

随机推荐

  1. leetcode423

    public class Solution { public string OriginalDigits(string s) { ]; ; i < s.Length; i++) { char c ...

  2. 蓝牙服务 UUID

    https://developer.bluetooth.org/gatt/services/Pages/ServicesHome.aspx 手机蓝牙对手机 ,华为平板取红米手机 8 个Audio So ...

  3. 监控和安全运维 1.5 nagios监控客户端-1

    3. Nagios安装 - 客户端(192.168.0.12)在客户端机器上 rpm -ivh http://www.aminglinux.com/bbs/data/attachment/forum/ ...

  4. django之admin组件

    一.面向对象复习 1.类的继承 class Base(object): def __init__(self,val): self.val = val def func(self): self.test ...

  5. TCP UDP HTTP 的关系和区别

    TCP UDP HTTP 三者的关系: TCP/IP是个协议组,可分为四个层次:网络接口层.网络层.传输层和应用层. 在网络层有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协议. 在传 ...

  6. PHP如何将XML转成数组

    如果你使用 curl 获取的 xml data $xml = simplexml_load_string($data); $data['tk'] = json_decode(json_encode($ ...

  7. java中的字符,字节和编码

    1. 编码问题的由来,相关概念的理解 1.1 字符与编码的发展 从计算机对多国语言的支持角度看,大致可以分为三个阶段:   系统内码 说明 系统 阶段一 ASCII 计算机刚开始只支持英语,其它语言不 ...

  8. CSS中cursor的pointer 与 hand(转)

    CSS中cursor的pointer 与 hand 转载 2015年12月25日 16:18:36 标签: cursorpointer / cursorhand 1781 cursor:hand 与 ...

  9. 百度Apollo解析——0.使用VSCode编译Apollo项目

    1.安装微软Visual Studio Code 1.1 方法一 开始之前,首先需要安装Ubuntu Make.虽然Ubuntu Make存在Ubuntu15.04官方库中,但是需要Ubuntu Ma ...

  10. CURD 操作 [2]

    一.数据读取 在之前的课程中,我们已经大量使用了数据读取的功能,比如 select()方法.结合各种连贯方法可以实现数据读取的不同要求,支持连贯的方法有: 1.where,查询或更新条件:2.tabl ...