在JSP中使用JavaBean以后,可以实现HTML代码和Java代码的分离,是JSp更易于开发和维护。因此JavaBean成了JSP程序员必备的利器。
虽然javaBean是java类,但是它也有自己的一些特性
(1)JavaBean是一个public类
(2)JavaBean 有一个不带参数的构造方法
(3)JavaBean中的属性通过get和set方法进行操作
例如:定义个CircleArea的JavaBean用于封装圆面积的计算逻辑,以后凡是用到圆面积的计算方法均可使用该JavaBean来完成,实现了代码的重用。
CircleArea.java
package JavaBeanTest;
public class CircleArea {
//定义两个属性 (r:半径;unit:单位)
private double r=0;
private String unit="";
//无参的构造方法
public CircleArea() {
super();
}
public double getR() {
return r;
}
public void setR(double r) {
this.r = r;
}
public String getUnit() {
return unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
//计算圆的面积并返回计算结果
public String getArea(){
return 3.14*r*r+"平方"+unit;
}
}
在JSP中使用JavaBean。
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<!-- 在jSP中使用JavaBean一般遵循以下四步
(1)导入JavaBean的类
(2) 在指定范围内实例化一个JavaBean对象,如果该对象已经存在则直接引用
(3) 对Javabean的实例对象进行操作
(4)从指定范围内移除JavaBean
-->
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@page import="JavaBeanTest.CircleArea" %>
<jsp:useBean id="circle1" class="JavaBeanTest.CircleArea" scope="page"/>
<jsp:useBean id="circle2" class="JavaBeanTest.CircleArea" scope="request"/>
<jsp:useBean id="circle3" class="JavaBeanTest.CircleArea" scope="session"/>
<jsp:useBean id="circle4" class="JavaBeanTest.CircleArea" scope="application" />
<html>
<head>
<title>JavaBean在JSP中的应用</title>
</head>
<body>
<%
//调用page范围内的JavaBean
circle1.setR(4);
circle1.setUnit("米");
out.println(circle1.getArea());
out.println("<br/><br/>");
//调用request范围内的JavaBean
circle1.setR(6);
circle1.setUnit("米");
out.println(circle1.getArea());
out.println("<br/><br/>");
//调用session范围内的JavaBean
circle1.setR(8);
circle1.setUnit("米");
out.println(circle1.getArea());
out.println("<br/><br/>");
//调用application范围内的JavaBean
circle1.setR(9);
circle1.setUnit("米");
out.println(circle1.getArea());
out.println("<br/><br/>");
%>
<hr/>
<%
//将circle1从page范围内移除
pageContext.removeAttribute("circle1");
//将circle2从request范围内移除
request.removeAttribute("circle2");
//将circle3从session范围内移除
session.removeAttribute("circle1");
//将circle4从application范围内移除
application.removeAttribute("circle1");
%>
</body>
</html>