JavaBean 相关基础知识

本文介绍了JavaBean的基础知识和应用。JavaBean是用于封装业务逻辑的类,分为可视化和非可视化类型。遵循JavaBean规范,它需要提供默认构造器和访问器方法。在JSP中,JavaBean通过动作标签被用来获取和设置属性,其生命周期可以在不同范围内定义。通过实例展示了如何在JSP页面中创建、使用和赋值JavaBean,强调了表单属性与JavaBean属性对应的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

JavaBean介绍

JSP网页开发初级阶段,JSP网页代码与业务逻辑代码写在一起,给程序调试及维护带来很大困难,直至JavaBean出现,才改善了这一问题

JavaBean概述
将HTML代码与Java代码分离,将Java代码单独封装成为一个处理某种业务逻辑的类,然后在JSP页面中调用此类(JavaBean组件)

在这里插入图片描述

JavaBean种类

  • 可视化的JavaBean:一般用于Swing的程序中,在JavaWe开发中并不会采用
  • 非可视化的JavaBean:实现一些业务逻辑或封装一些业务对象

在JavaBean的规范中,要求JavaBean对象提供默认无参的构造方法,但除默认无参的构造方法外,JavaBean对象也可以根据相关属性提供构造方法

JavaBean的应用

JavaBean是用Java所写成的可重用组件,可以应用于系统很多层中,如PO,VO,DTO,POJO

获取JavaBean属性信息
在JavaBean对象中,为了防止外部对JavaBean属性的调用,通常将JavaBean中的属性设置为私有的,但需要为其提供公共的访问方法

示例代码:
(1). 创建名为Produce的类,该类是封装商品对象的JavaBean,在Produce类中创建商品属性,并提供相应的getXXX()方法:

public class Produce {
    private String name = "guitar";
    private double price = 1880.5;
    private int count = 100;
    private String factoryAdd = "广东省深圳市xxx琴行";

    public String getName() {
        return name;
    }

    public double getPrice() {
        return price;
    }

    public int getCount() {
        return count;
    }

    public String getFactoryAdd() {
        return factoryAdd;
    }
}

(2). 在JSP页面中获取商品JavaBean中的属性信息,该操作通过JSP动作标签获取:

// <jsp:useBean>实例JavaBean对象
<jsp:useBean id="produce" class="com.wang.yx.bean.Produce"></jsp:useBean>
 <div>
   <ul>
   // <jsp:getProperty>获取属性信息
     <li>
       商品名称:<jsp:getProperty name="produce" property="name"/>
     </li>
     <li>
       价格:<jsp:getProperty name="produce" property="price"/>
     </li>
     <li>
       数量:<jsp:getProperty name="produce" property="count"/>
     </li>
     <li>
       厂址:<jsp:getProperty name="produce" property="factoryAdd"/>
     </li>
   </ul>
 </div>

JSP页面应该尽量避免出现Java代码,所以实例使用JSP的动作标签避免这一问题

运行结果:

商品名称:guitar
价格:1880.5
数量:100
厂址:广东省深圳市xxx琴行

对JavaBean属性赋值

编写JavaBean对象要遵循JavaBean规范,在JavaBean规范中的访问器setXXX()方法,用于对JavaBean中的属性赋值

如果对JavaBean对象的属性提供了setXXX()方法,在JSP页面中就可以通过<jsp:setProperty>对其进行赋值

在JSP页面中应用JavaBean
在遵循JavaBean规范下,在JSP页面使用JavaBean很简单,主要通过JSP动作标签<jsp:useBean>、<jsp:getProperty>、<jsp:setProperty>来实现对JavaBean对象的操作

JavaBean的生命周期可以自行进行设置,它存在于4种范围:page,request,session,application,默认情况下,JavaBean作用于page范围内

实例代码:
(1). 创建Person类,实现对用户信息的封装

public class Person {
    private String name;
    private int age;
    private String sex;
    private String add;

    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public String getSex() {
        return sex;
    }

    public String getAdd() {
        return add;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public void setAdd(String add) {
        this.add = add;
    }
}

(2). 创建程序主页面index.jsp,在该页面中设置录入用户信息所需要的表单

<form action="reg.jsp" method="post">
   <table align="center" width="400" height="200" border="1">
     <tr>
       <td align="center" colspan="2" height="40">
         <b>添加用户信息</b>
       </td>
     </tr>
     <tr>
       <td align="right">姓&nbsp;&nbsp;名:</td>
       <td>
         <input type="text" name="name">
       </td>
     </tr>
     <tr>
       <td align="right">年&nbsp;&nbsp;龄:</td>
       <td>
         <input type="text" name="age">
       </td>
     </tr>
     <tr>
       <td align="right">性&nbsp;&nbsp;别:</td>
       <td>
         <input type="text" name="sex">
       </td>
     </tr>
     <tr>
       <td align="right">住&nbsp;&nbsp;址:</td>
       <td>
         <input type="text" name="add">
       </td>
     </tr>
     <tr>
       <td align="center" colspan="2">
         <input type="submit" value="添&nbsp;&nbsp;加">
       </td>
     </tr>
   </table>
 </form>

表单信息中的属性名最后设置为JavaBean中的属性名称,这样可以直接使用<jsp:setProperty property="*"/>的形式来接受所有参数

(3). 创建reg.jsp页面,将所获取的用户信息输出到页面中

// 如果所处理的表单中包含中文,可以通过request的setCharacterEncoding()方法指定字符编码格式解决乱码现象
<%
    request.setCharacterEncoding("utf-8");
%>
<jsp:useBean id="person" class="com.wang.yx.bean.Person" scope="page">
    <jsp:setProperty name="person" property="*"/>
</jsp:useBean>
<table align="center" width="400">
    <tr>
        <td align="right">姓&nbsp;&nbsp;名:</td>
        <td>
            <jsp:getProperty name="person" property="name"/>
        </td>
    </tr>
    <tr>
        <td align="right">年&nbsp;&nbsp;龄:</td>
        <td>
            <jsp:getProperty name="person" property="age"/>
        </td>
    </tr>
    <tr>
        <td align="right">性&nbsp;&nbsp;别:</td>
        <td>
            <jsp:getProperty name="person" property="sex"/>
        </td>
    </tr>
    <tr>
        <td align="right">住&nbsp;&nbsp;址:</td>
        <td>
            <jsp:getProperty name="person" property="add"/>
        </td>
    </tr>
</table>

Tip:如果表单中属性名和JavaBean中的属性名不一致,可以通过<jsp:setProperty>标签中的param属性来指定表单中属性

eg:

// 假设这里表单中用户名为username
<jsp:setProperty name="person" property="name" param="username"/>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值