在JSP中如何使用JavaBean

时间:2022-05-05 20:03:08

在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>

转自:http://blog.csdn.net/whatisnotnull/article/details/7956605