JavaBean

实现高可维护的有效途径是要实现软件的低耦合、高内聚。
软件设计分层的概念就是主要将软件各个部分进行解耦合设计,对于JSP动态开发技术而言,Java Bean是最基础的分层技术。Bean是一种软件组件,在JSP开发中经常用来封装逻辑、数据库操作等。

JavaBean的含义

编写一个JAVABean就是编写一个JAVA类(这类必须带有包名),这个类创建一个对象称为Bean,为了让JSP引擎(比如Tomca)知道这个bean的属性和方法,javaBean必须遵守以下规则:
1.如果类的成员变量的名字是name,那么为了获取或更改成员变量的值,类中必须提供两个方法:
getName(),用来获取属性name.
setName(),用来修改属性name
即方法的名字用get或set为前缀,后缀是首字母大写的成员变量的名字。
(成员变量不等于属性)
2.对于boolean类型的成员变量,允许使用is代替上面的get。不可以代替set

3.类中方法的访问权必须是public

4.如果有构造方法,必须提供一个无参数的构造方法。–即构造方法可以有也可以没有

在这里插入图片描述

在开发软件过程中,尽量把业务逻辑和表现层分开,从而达到完全解耦,这是软件分层设计的基本理念。在JSP中,经常利用JAVA BEAN实现核心的业务逻辑,而JSP页面用于表现层

JAVA BEAN形式上是纯JAVA代码,它是可以重复使用的一个组件。JSP页面只用于接收用户的输入以及显示处理之后的结果,因此不再需要在JSP页面中嵌入大量的JAVA代码,这不仅提高了系统的可维护性,而且方便工作的分工。
package com.bean;//jsp的类必须放在包里面

public class 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 double getWidth() {
		return width;
	}
	public void setWidth(double width) {
		this.width = width;
	}
	public double computerArea(){
		return length*width;
	}
	public double computerLength(){
		return (length+width)*2;
	}
}

成员变量不等于属性,有getXXX,setXXX就叫属性,属性是由get和set来决定的,get和set不一定是都要有,可以有一个、

如何用

在jsp页面中使用bean时,首先要使用page指令的import属性导入创建bean的类,例如
<%@ import="com.bean.*```%>

在这里插入图片描述

动作标记useBean

useBean动作标记是用来查找或者实例化一个javaBean
useBean标记的格式:
<jsp:useBean id=“bean的名字” class=“创建bean的类” scope=“bean的有效范围”/>
或<jsp:useBean id="bean的名字 type="创 建bean的类” scope=“bean的有效范围”/>

scope有四个范围,从小到大为:page|request|session|application"

在页面中导入相应的Bean类,并用jsp:useBean标签获取Bean对象
形式如下

<jsp:useBean
		id="beanInstanceName"
		scope="page|request|session|application"
		{
			class="package.class"|
			type="package.class"|
			class="package.class" type="package.class"|
			beanName="{package.class|<%=expression%>}"
			type="package.class"
		}
</jsp:useBean>



不一定要用Import

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%-- <%@ page import="com.bean.*"> --%>这里已经注释掉了
<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>

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
出现的是这个
在这里插入图片描述

为什么:

这里有class表,里面有完整的包名,上面的就可以不用了。即可以不用Import
不可以只写上面的不写下面的。@page可以不写,但下面的uesBean必须要写。
class把包名写清楚,也可以在上面访问包,之后下面声明一下即用java声明一下。

动作标记 取得属性getProperty

使用getProperty动作标记可以获得bean的属性值。使用该动作标记之前,必须事先使用useBean动作标记获得一个相应的bean.getProperty动作标记语法格式如下:
< jsp:getProperty name="bean的name” property="bean的属性”/>

< jsp:getProperty name=“bean的name” property=“bean的属性”></ jsp:getProperty>

获得属性setProperty

1.用表达式或字符串设置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异常

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTFa-8">
<title>Insert title here</title>
</head>
<body>
	<jsp:useBean id="pig" class="com.bean.NewRectangle" scope="page"/>
	<%pig.setLength(30);%>
	<%pig.setWidth(20);%>
		<p>矩形的长是:<jsp:getProperty property="length" name="pig"/>
		<p>矩形的宽是:<jsp:getProperty property="width" name="pig"/>
		<p>矩形的面积是:<jsp:getProperty property="rectangleArea" name="pig"/>
		<p>矩形的周长是:<jsp:getProperty property="rectangleLength" name="pig"/> 
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

向上Claire

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值