javaBean

这个Java类必须具有一个无参的构造函数
属性必须私有化。
私有化的属性必须通过public类型的方法暴露给其它程序,并且方法的命名也必须遵守一定的命名规范。

JavaBean在J2EE开发中,通常用于封装数据,对于遵循以上写法的JavaBean组件,其它程序可以通过反射技术实例化JavaBean对象,并且通过反射那些遵守命名规范的方法,从而获知JavaBean的属性,进而调用其属性保存数据。
 JSP技术提供了三个关于JavaBean组件的动作元素,即JSP标签,它们分别为:

<jsp:useBean>标签:用于在JSP页面中查找或实例化一个JavaBean组件。
<jsp:setProperty>标签:用于在JSP页面中设置一个JavaBean组件的属性。
<jsp:getProperty>标签:用于在JSP页面中获取一个JavaBean组件的属性。

<jsp:useBean>标签用于在指定的域范围内查找指定名称的JavaBean对象,如果存在则直接返回该JavaBean对象的引用,如果不存在则实例化一个新的JavaBean对象并将它以指定的名称存储到指定的域范围中。 
  常用语法:
    <jsp:useBean id="beanName" class="package.class" scope="page|request|session|application"/>
  "id"属性用于指定JavaBean实例对象的引用名称和其存储在域范围中的名称。
  "class"属性用于指定JavaBean的完整类名(即必须带有包名)。
  "scope"属性用于指定JavaBean实例对象所存储的域范围,其取值只能是page、request、session和application等四个值中的一个,其默认值是page。

Javabean就是Java类。从表示层的处理来考虑,Javabean就是一个个的service类。
现在就用一个实际的例子来说明javabean是怎样工作的,建立一个用户注册登陆小模块
--------------------------------------------------------------------------------------
/*1,建立一个javabean封装用户的信息(姓名和密码)UserInfo.java,其中的方法有
setter方法来设置用户的信息,getter方法来获取用户的信息*/
 
package user;//存放UserInfo.java的包,该包中放在web-inf目录下
public class UserInfo
{
private String password;
private String name;
 
//获取信息
public String getPassword()
{
return this.password;
}
public String getName()
{
return this.name;
}
//设置信息
public void setPassword(String p)
{
this.password=p;
}
public void setName(String n)
{
this.name=name;
}
}
 
--------------------------------------------------------------------------------------------------
/*2,现在做的事就是建立一个javabean处理数据库操作以及一些简单的逻辑操作UserRegist.java*/
 
package user;//同理也放在这个包中
import java.sql.*;
 
public class UserRegist
{
private UserInfo userInfo;//在此javabean中把UserInfo.java这个javabean引进来
private Connection conn=null;
 
//连接数据库
public UserRegist()
{
try
{
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/joke?user=root");
}
catch(Exception e)
{
e.printStackTrace();
}
}
 
public void setUserInfo(UserInfo userInfo)
{
this.userInfo=userInfo;
}
 
 
//进行注册
public void regist()throws Exception
{
String reg="insert into user_Info values(?,?)";
try
{
PreparedStatement pstmt=conn.prepareStatement(reg);
//create a preparestatement sentence ,then to set their name
pstmt.setString(1,userInfo.getPassword());
pstmt.setString(2,userInfo.getName());
//excute update
pstmt.executeUpdate();
}
catch(Exception e)
{
e.printStackTrace();
throw e;
}
}
}
 
-----------------------------------------------------------------------------------------------------------------
/*3,好了,我们的要用到的javbean就建立完了,现在就是做一个简单的表单html页面了,login.html,接受用户输入的信息*/
 
<form  action="regist.jsp" name="form1">
 
<table>
 
<tr>
 
<td> username:</td>
 
<td><input name="name"></input></td>
 
</tr>
 
<tr>
 
<td>userpassword:</td>
 
<td><input  type="password" name="password"></input></td>
 
</tr>
 
<tr>
 
<td><input type="submit" value="go"></td>
 
<td><input type="reset" value="reset"></td>
 
<table>
 
</form>
 
----------------------------------------------------
 
/*4,最后我们做的事就是用一个简单的jsp页面让两个javabean工作起来,regist.jsp*/
 
 
 
<%@page contentType="text/html;charset=GB2312"%>
 
//利用此标签来调用UserInfo.java
 
<jsp:useBean id="userInfo" class="user.UserInfo" scope="page">
 
//利用此标签来用UserInfo.java接受并保存表单中的信息
 
<jsp:setProperty name="userInfo" property="*"/>
 
</jsp:useBean>
 
//来调用UserRegist.java
 
<jsp:useBean id="regist" class="user.UserRegist" scope="page"/>
 
 
 
<%
 
regist.setUserInfo(userInfo);//调用UserRegist.java中的setUserInfo()方法获取保存在serInfo.java中的信息
 
regist.regist( );//调用UserRegist.java中的regist( )方法进行注册
 
out.println("registed ok!");
 
%>
 
<br><hr><br>
 
<a href="login.jsp">back</a>