引言:
1. JavaBeans的编写要求
- nJavaBeans必须是一个公共类(public),即在类定义的前面一定要加访问修饰符public;
- nJavaBeans必须有一个公共的(public)、不带参数的构造函数。因为构造函数可以重载,所以也可以有其他带参数的构造函数;
- nJavaBeans一般都属性,这些属性是以类中数据成员的方式定义的,这些属性都是私有的(private),仅能通过一组共有的成员方法对其进行操作。
- 设置属性的方法名要用setXXX();取得属性的方法名要用getXXX()。
2. 一个简单的JavaBeans实例
01: package myBean;
02: import java.io.*;
03: public class HelloBean
04: {
05: //定义属性
06: private String name="Hello Bean";
07: //定义无参的构造函数
08: public HelloBean(){}
09: //定义获取属性的getXXX方法
10: public String getName()
11: {
12: return name;
13: }
14: //定义设置属性的setXXX方法
15: public void setName(String str)
16: {
17: name=str;
18: }
19: public static void main(String[] args)
20: {
21: System.out.println("Example JavaBeans");
22: }
23: }
- 该实例已经在代码的注释中进行了说明。
- 由于该实例有main()主函数(一般JavaBeans不需要定义main()函数,因它是提供服务的程序,由其它的程序来调用它),所以在编译后,可以在DOS环境下执行,执行结果为Example JavaBeans。
3. 在JSP中使用JavaBeans
- 在JSP中使用JavaBeans,首先要在Tomcat Web服务器中部署已经编译好的JavaBeans。
- 在TOMCAT_HOMEwebappsjspWEB-INFclasses目录下创建myBean文件夹(这是为了与实例10-1第01行所定义的包名myBean相对应),然后将编译好的字节代码文件复制到该目录中。
01: <%@page contentType="text/html;charset=GBK"%>
02: <HTML>
03: <HEAD><TITLE>使用JavaBeans</TITLE>
04: </HEAD>
05: <BODY>
06: <H2>该实例说明了在一个JSP中如何使用JavaBeans的属性</H2>
07: <HR>
08:<jsp:useBean id="myBean" class="myBean.HelloBean" scope="application"/>
09: 调用setProperty前name属性的值是:
10: <jsp:getProperty name="myBean" property="name" />
11: <P>
12: <jsp:setProperty name="myBean" property="name" value="Hello World"/>
13: 调用setProperty后name属性的值是:
14: <jsp:getProperty name="myBean" property="name" />
15: </BODY>
16: </HTML>
- 将实例10-2复制到TOMCAT_HOMEwebappsjsp目录下,然后在地址栏输入http://localhost:8080/jsp/useHelloBean.jsp,则浏览器窗口显示如图10-1所示的内容。
- 实例10-2的08行<jsp:useBean…>是说明在该程序要使用一个类名为myBean.HelloBean的JavaBeans,第10行是取得属性名为name的值,第12行是将属性name的值设置为“Hello World”,第14行取得重新设置后属性name的值。
- 在前面介绍过,JSP操作是为了使客户机或服务器实现某种操作而下达的指令。
- JSP有七个操作标记,即jsp:include、jsp:useBean、jsp:setProperty、jsp:getProperty、jsp:forward、jsp:param和jsp:plugin。其中的jsp:include、jsp:forward、jsp:param和jsp:plugin已经介绍过,下面介绍jsp:useBean、jsp:setProperty和jsp:getProperty三个操作的功能和使用方法。
1. jsp:useBean操作
<jsp:useBean id=“beanName”
scope="page|request|session|application“
class="package.class"
/>
- page:表示这个JavaBeans在该JSP页面文件及此文件中的所有静态包含文件中有效(<%@ include file=…>)。
- request:表示这个JavaBeans在该页面发出的请求中有效。
- session:表示这个JavaBeans将作为一个对象绑定于session会话中,即在客户机与服务器的一个会话期内有效。
- application:表示这个JavaBeans将做为一个对象绑定于application中,在本应用中有效。
2. jsp:setproperty操作
<jsp:setProperty name="beanName "
property="propertyName"
value="propertyValue“
/>
<jsp:useBean id="beanName " ... >
..
<jsp:setProperty name=" beanName " property=" propertyName" value="propertyValue" />
</jsp:useBean>
3. jsp:getProperty操作
<jsp:getProperty name="beanName " property="propertyName" />
================================================================
以下代码是我根据上面的说明,写的简单的测试:
方式一:
package Java.Bean; import java.util.Date; import java.text.*; public class Test1 { public Test1(){} public String say() { String time=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); return " Welcome! Now :"+time; } } -------------------------------------- <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@page import="Java.Bean.*"%> <html> <body> <h1>Hi <%= new Java.Bean.Test1().say()%></h1> </body> </html>
方式二:
package mybean; public class Test1 { public Test1(){} public String say() { return " Welcome Java Bean."; } } -------------------------------------------- <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <jsp:useBean id="my" scope="request" class="mybean.Test1"></jsp:useBean> <html> <body> <h1>Hi <%=my.say()%></h1> </body> </html>