JavaBean
JavaBean概述
JavaBean是用Java语言描述的软件组件模型,类似于Microsoft中COM组件的概念。
使用JavaBean可以实现代码的重复利用,因此极大地简化了程序的设计过程。
JavaBean是一种特殊的Java类,它具有如下的几个语法特征。
- JavaBean是一个public类,即JavaBean的类访问权限必须是public的。
- JavaBean应该包含一个无参的构造方法。
- JavaBean中属性的获取和设置需要使用标准格式定义的getXxx()方法和setXxx()方法。对于boolean类型的成员变量,即布尔类型的属性,可以使用isXxx()方法来代替getXxx()和setXxx()方法。
- 需要被序列化并且实现了Serializable接口。
在JSP中设置JavaBean属性
使用< jsp:useBean>、< jsp:setProperty>以及< jsp:getProperty>来调用JavaBean
着重强调以下< jsp:setProperty>设置属性的几种形式:
① < jsp:setProperty name=“myBean” property="*" />
property="*"表示从request对象中将所有与JavaBean属性名字相同的请求参数传递给相应属性的setter方法。
② < jsp:setProperty name=“myBean” property=“id” />
表示将request对象中的参数id传入到JavaBean实例myBean的参数id中。
③ < jsp:setProperty name=“myBean” property=“id” param=“personid”/>
表示将request对象中的参数personid传入到JavaBean实例myBean的参数id中。
④ < jsp:setProperty name=“myBean” property=“id” value=“123”/>
表示向JavaBean实例myBean的属性id中传入指定的值。
JavaBean实例
JavaBean文件(public类、包含无参构造函数、实现Serializable接口、有属性的get、set方法)
/* JavaBean实例*/
package count;
public class counter implements java.io.Serializable{
/*count属性,记录请求次数*/
int count = 0;
/*无参构造方法 */
public counter(){}
/* count属性的get和set方法 */
public int getCount(){
count ++;
return count;
}
public void setCount(int count){
this.count = count;
}
}
JSP中使用JavaBean
<body>
<!-- 指定JavaBean实例,其相应的生存范围及全限定名 -->
<jsp:useBean id="countBean" class="count.counter" scope="application"/>
<!-- 使用jsp:getProperty动作指令获得count属性值 -->
the number of request is:
<jsp:getProperty name="countBean" property="count"/><br>
</body>
Servlet
Servlet概述
Servlet是在JSP之前推出的,它是一种应用于服务器端的Java程序,可以生成动态的Web页面。事实上,JSP在运行前还需要被编译成Servlet。
Servlet运行在服务器端,是由Web服务器负责加载的,是独立于平台和协议的Java应用程序。JSP改变了Servlet提供HTTP服务时候的编程方式。但是内部机制上,每一个JSP都被处理成一个Servlet。
Servlet并不限制所使用的协议,但使用最多的协议是HTTP协议。HTTP协议的特点是每次连接只完成一个请求,其处理过程为:建立连接、发送请求、提供服务、发送响应,最后关闭连接。
Servlet的生命周期
Servlet运行在Servlet容器中,由容器来管理其生命周期。Servlet的生命周期主要包含4个过程:
(1)加载和实例化。(加载Servlet之后,Servlet容器通过Java反射创建Servlet实例)
(2)初始化。(实例创建后,容器调用Servlet的init()方法来初始化该Servlet对象))
(3)执行。
(4)清理。(destroy()方法)
在Servlet的整个生命周期,其初始化和销毁都只发生一次,service()方法的执行次数取决于Servlet被客户端所访问的次数。