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被客户端所访问的次数。