什么是javabean ? javaBean 就是一个类,你自己首先定义好的一个类,编译之后在JSP中直接使用,类似开源的jar包,只不过这个是你自己写的。
javabean 类的一些定义规则:
对于 一个属性 需要有getXXX() setXXX()函数来获得和设置属性的值
并且对于每个访问属性的方法都要设置为pulic访问权限,这样可以方便JSP引擎知道JavaBean的属性和方法 。
构造函数不带参数
例子:
package MathBox; public class Box { double length; double width; double height; public Box() { length = 0; width = 0; height = 0; } 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 getHeight() { return height; } public void setHeight(double height) { this.height = height; } public double volumn() // 求容积 { double volumns ; volumns = width*height*length; return volumns; } public double surfaceArea() { double area ; area = length*width*2 + length*height *2 + width *height*2; return area; } }
那么部署javabean 有两个方法:
1 ;部署class,将class字节码文件复制到web 应用的“WEB-INF\classes”,目录下,如果class 属于某个包,也要相应 的位于该文件下。
2 部署jar包
如果让web服务器上所有的JSP页面都可以使用,那么将class打包成jar文件,复制到Tomcat 安装目录下的lib文件夹下,如果只对当前应用有效,则在WEB-INF下建立一个lib目录,然后复制jar包
javaBean 在jsp 中的使用:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>JavaBean Using</title> </head> <body> <jsp:useBean id="box" class="MathBox.Box" scope="page"></jsp:useBean> <!-- 在jsp 中使用javaBean --> <jsp:setProperty property="length" name="box" value="10"/><!-- 通过标签来设置属性值 --> <jsp:setProperty property="width" name="box" value="11"/> <jsp:setProperty property="height" name="box" value="12"/> <pre>通过标签可以得到属性值:<jsp:getProperty property="length" name="box"/><br> <jsp:getProperty property="width" name="box"/><br> <jsp:getProperty property="height" name="box"/><br> </pre> <% // box.setHeight(10); //box.setLength(11); //box.setWidth(12); out.println("在JSP中使用javabean<br/>"); out.println("盒子的长度为:" + box.getLength()+"<br>"); out.println("盒子的宽度为:" + box.getWidth()+"<br>"); out.println("盒子的高度为:" + box.getHeight()+"<br>"); out.println("盒子的 体积为:" + box.volumn()+"<br>"); out.println("盒子的表面积为:" + box.surfaceArea()+"<br>"); %> </body> </html>