一、什么是javaBean
在JSP中调用JAVA类和使用JAVABEAN有什么区别?
你可以像使用一般的类一样使用JavaBean,Bean只是一种特殊的类。
特殊在可以通过<jsp:useBean />调用JavaBean而其他类,你可以和一般java中一样使用.
Bean 的参数中还可以指定范围, <jsp:useBean scope="application" /> 该Bean在服务器的JVM 中将只有一个实例.
Bean是和WebServer相关的, 不同的页面可以通过 Bean 交互. 而你在一个页面中的类,就没有这个功能, 除非通过session, 那又是另外一回事了.
bean其时也是class文件,只是普通的java文件没有什么限制,如果你按bean的规范来制作class文件,那他就是一个bean。而按bean的规范来制作就相当是一个组件,换句话说bean就是组件技术,至于bean的规范,你可以在书上或网上查一下。
JavaBean的规范
JavaBean必须包含一个无参数的public构造方法。
JavaBean必须包含符合命名规范的get和set方法,以便访问JavaBean的属性。
JavaBean应该是可串行化(serializable)的。
JavaBean不应包含事件处理方法。
JavaBean示例:public class PersonBean implements java.io.Serializable {
private String name;
private boolean deceased;
// No-arg constructor (takes no arguments).
public PersonBean() {
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
// Different semantics for a boolean field (is vs. get)
public boolean isDeceased() {
return this.deceased;
}
public void setDeceased(boolean deceased) {
this.deceased = deceased;
}
为了确保一个java类成为javabean,有以下四个简单的也是必须的规范:
这个类是可序列化的,即必须实现java.io.Serializable接口。
这个类必须带有一个无参数的构造方法。
这个类的属性必须通过get、set和其他按标准规范命名的方法来操作:若成员变量名为XXX,那么要有方法getXXX(),用来获取属性;setXXX(),用来修改属性;对于Boolean类型的成员变量,可用is代替get和set类中的方法的访问。属性都必须是public的。类中如果有构造方法,那么这个构造方法也是public的,并且无参数。
这个类包含所有必需的事件处理方法。
二、JavaBean和Servlet的不同
Type1: 一般的JavaBean中,只有属性声明和该属性对应的setXxx和getXxx方法,(一般不建议)不包含业务逻辑;这种JavaBean你可以简单地理解为“数据对象”即可。
Type2: 还有一种JavaBean,其内包含业务处理逻辑,用于处理特定的业务数据;一般使用上面所述的“数据对象”(当然也可能不使用)。
Servlet主要是用来:接收请求、封装‘Type1’的JavaBean、调用‘Type2’的JavaBean的相应业务逻辑方法、向客户端发出响应。
以上是Struts 1.x所使用的模式:A