JavaBean

2024-01-02 22:31:27

学习目的与要求

熟练掌握<jsp:useBean>、<jsp:setProperty>、<jsp:getProperty>等JSP的操作指令。

本章主要内容

  • 编写JavaBean
  • 在JSP中使用JavaBean?

一个JSP页面通过使用HTML标记为用户显示数据(静态部分),页面中变量的声明、程序片以及表达式为动态部分,对数据进行处理。如果Java程序片和HTML标记大量掺杂在一起使用,将不利于JSP页面的扩展和维护。JSP和JavaBean技术的结合不仅可以实现数据的表示和处理分离,而且可以提高JSP程序代码重用的程度,是JSP编程中常用的技术。

1.编写JavaBean?

JavaBean是一个可重复使用的软件组件,是遵循一定标准、用Java语言编写的一个类,该类的一个实例称为一个JavaBea,简称bean。JavaBean具有可重用、升级方便、不依赖与平台的特点。JavaBean又可以分为业务bean和数据bean。

业务bean:用于封装业务逻辑、数据库操作等;

数据bean:用于封装数据。

编写一个JavaBean就是编写一个Java类(该类必须带有包名),这个类创建的一个对像为一个bean,为了让JSP引擎(比如Tomcat)知道这个bean的属性和方法,JavaBean类必须遵守以下规则:? ? ? ? ? ? ??

①如果类的成员变量的名字是name,那么为了获取或更改成员变量的值,在类中必须提供以下两个方法。

  • getName():用来获取属性name。
  • setName():用来修改属性name。

②对于boolean类型的成员变量,允许使用“is”代替上面的“get”和“set”。

③类中方法的访问权限必须是public。

④如果有构造方法,必须提供一个五参数的构造方法。

【例1】创建bean的源文件Rectangle.java(在包com.bean中)。该bean的作用是封装矩形的长宽高,并计算矩形的面积和周长。

Rectangle.java
package com.bean Rectangle{
       private double length;
       private double width;
       public Rectangle(){
       length = 20;
       width = 10;
       }
       public double getLength(){
          return length;
       }
       public void setLength(double length){
          this.length=length;
       }
       public getWidth(){
          return width;
       }
        public void setWidth(double width){
          this.width=width;
       }
       public double computerArea(){
          return length*width;
       }
       public double computerLength(){
          return (length+width)*2;
       }
}

2.在JSP中使用JavaBean

在JSP页面中使用bean时,首先使用page指令的import属性导入创建bean的类,例如

<%@ page import="com.bean.*"%>

2.1 动作标记useBean

useBean动作标记用来查找或者实例化一个JavaBean。useBean标记的格式如下:

<jsp:useBean id="bean的名字" class="创建bean的类" scope="bean的有效范围"/>
或
<jsp:useBean id="bean的名字" type="创建bean的类" scope="bean的有效范围" />
例如:
<jsp:useBean id ="Rectangle" class="com.bean.Rectangle" scope="page" />

【例2】在JSP页面中使用useBean标记获得一个bean,负责创建bean的类是例5-1中的Rectangle类,bean的名字是rectangle,rectangle的scope取值为page。

<%@ page language="java" contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>example5_2.jsp</title>
</head>
<body>
<jsp:useBean id="rectangle" class="com.bean.Rectangle" scope="page"/>
<p>矩形的长是:<%=rectangle.getLength()%>
<p>矩形的宽是:<%=rectangle.getWidth()%>
<p>矩形的面积是:<%=rectangle.computerArea()%>
<p>矩形的周长是:<%=rectangle.computerLength()%>
</body>
</html>

2.2动作标记getProperty

? ? ? JavaBean的实质是遵守一定规范的类所创建的对象,用户可以通过两种方式获取bean的属性:

①在Java程序片或表达式中使用bean对象调用getXxx()方法获取bean的属性值,比如例5-2中的语句<%%=rectangle.getWidth()%>;

②先通过<jsp:useBean>标记获得一个bean,再通过<jsp:getProperty>标记获取bean的属性值。

? ? ? 使用getProperty动作标记可以获得bean的属性值,注意,在使用该动作标记之前必须事先使用useBean动作标记获得一个相应的bean。getProperty动作标记的语法格式如下:

<jsp:getProperty name="bean的名字" property="bean的属性"/>
或
<jsp:getProperty name="bean的名字" property="bean的属性">
</jsp:getProperty>

2.3动作标记setProperty

? ? ? 除了可以在Java程序片中使用bean对象调用setXxx()方法修改bean的属性值外,还可以使用setProperty动作标记修改bean的属性值。注意,在使用该动作标记会签必须事先使用useBean动作标记获得一个相应的bean。使用setProperty动作标记进行bean属性值的设置有以下三种方式

①用表达式或字符串设置bean的属性

(1)用表达式设置bean的属性:

<jsp:setProperty name="bean的名字" property="bean的属性" value="<%=expression%>"/>

(2)用字符串设置bean的属性:

<jsp:setProperty name="bean的名字" property="bean的属性" value="字符串"/>

? ? ? 在用表达式修改bean属性值时,表达式值的类型必须与bean的属性类型一致。在用字符串修改bean属性值时,字符串会被转换为bean的属性类型,不能成功转换的可能会抛出NumberFormatException异常。

② 通过HTTP表单参数值设置bean的属性

<jsp:setProperty name="bean的名字" property="*"/>

这时,表单参数的名字必须与bean的名字相同,服务器会根据名字自动匹配,类型会自动转换。?

③任意指定请求参数设置bean的属性

任意指定请求参数设置bean的属性:

<jsp:setProperty name="bean的名字" property="属性名" param="参数名"/>

用户可以根据自己的需要任意选择传递的参数,请求参数名无须与bean属性名相同。

文章来源:https://blog.csdn.net/weixin_60415234/article/details/135342936
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。