javaBean是什么

S- day 36

javaBean

定义

JavaBean 是一种JAVA语言写成的可重用组件,它是一个类。
为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器. JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性,set和get方法获取。众所周知,属性名称符合这种模式,其他Java 类可以通过自省机制(反射机制)发现和操作这些JavaBean 的属性。

详解

  • 用作JavaBean的类必须具有一个公共的、无参数的构造方法。
  • JavaBean的属性与普通Java类的属性的概念不一样JavaBean的属性是以方法定义的形式出现的.
  • 用于对属性赋值的方法称为属性修改器或setter方法,用于读取属性值的方法称为属性访问器或getter方法。
  • 属性修改器必须以小写的set 前缀开始,后跟属性名,且属性名的第一个字母要改为大写,例如,nickName属性的修改器名称为setNickName,password属性的修改器名称为setPassword。
  • 属性访问器通常以小写的get 前缀开始,后跟属性名,且属性名的第一个字母要改为大写,例如,nickName属性的访问器名称为getNickName,password属性的访问器名称为getPassword。
  • JavaBean的属性名是根据setter方法与getter方法的名称来生成的, setter方法或getter方法中除去前缀“set”和“get”后的部分即为属性名,但属性名的首字母必须小写。

使用方法

  • SP规范专门定义了三个JSP标签:<jsp:useBean>、<jsp:setProperty>和<jsp:getPropperty>,它们分别用于创建和查找JavaBean的实例对象、设置JavaBean对象的属性、读取JavaBean对象的属性。

  • <jsp:useBean>标签
    上图的代码和下图等价
    在这里插入图片描述

  • <jsp:setProperty>标签
    在这里插入图片描述

  • <jsp:getPropperty>标签
    在这里插入图片描述

注意事项

在这里插入图片描述
JSP代码

<%@page import="calc.Calculate"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	
	<jsp:useBean id="calculator" class="calc.Calculate" scope="request" />
	<jsp:setProperty name="calculator" property="*" />
	
	<% 
		calculator.calculate();
	%>
	
	<h3>计算的结果:  <%= calculator.getResult() %> </h3>
	
	<form action="calc.jsp" method="get">
		<table>
			<tr><td><input type="text" name="first" /></td></tr>
			<tr><td>
				<select name="operator">
	              <option value="+">+</option>
	              <option value="-">-</option>
	              <option value="*">*</option>
	              <option value="/">/</option>
	            </select>
			</td></tr>
			<tr><td><input type="text" name="second" /></td></tr>
			<tr><td><input type="submit" value="计算"/></td></tr>
		</table>
	</form>
	<br>
	
</body>
</html>

JavaBean代码

package calc;

/**
 * 写一个javaBean
 * @author 悟空
 *
 */
public class Calculate {
	private String first = "0.0";
	private String second = "0.0";
	private String operator = " + ";
	private Double result = 0.0;
	
	public void calculate() {
			
			try {
				Double f = Double.parseDouble(first) ;
				Double s = Double.parseDouble(second) ;
				switch (operator) {
				case "+":
					result = f + s ;
					break;
				case "-":
					result = f - s;
					break;
				case "*":
					result = f * s;
					break;
				case "/" : 
					result = f / s;
					break;
				default:
					break;
				}
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
	}

	public String getFirst() {
		return first;
	}

	public void setFirst(String first) {
		this.first = first;
	}

	public String getSecond() {
		return second;
	}

	public void setSecond(String second) {
		this.second = second;
	}

	public String getOperator() {
		return operator;
	}

	public void setOperator(String operator) {
		this.operator = operator;
	}

	public Double getResult() {
		return result;
	}

	public void setResult(Double result) {
		this.result = result;
	}

	public Calculate() {
		super();
	}
	
	
}

效果截图
在这里插入图片描述

  • 29
    点赞
  • 159
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值