Java bean 是一种可重复使用、且跨平台的软件组件。javabean可分为两种:

一种是有用户界面的(ui user interface)的java bean 。

还有一种是没有用户界面的,主要负责处理事务(如数据运算,操纵数据库的)java bean。

jsp通常访问的是最后一种java bean。
java bean 和jsp 一起使用的优点:
使得java代码和html代码分离,这样便于维护代码。如果把所有的代码程序都写到jsp页面,使得代码繁琐,难以维护可以降低开发jsp网页人间对java编程能力的要求。
jsp侧重于生成动态网页,事务处理由java bean来完成,这样可以充分利用java bean组件的重要特点,提高开发软件的效率。

mvc设计模式:model 模型 view视图 controller控制器
view视图,就是用户最后看到的,用来呈现网页的
controller起到控制的作用,我这个请求应该由谁来处理
model 最后处理的
用户看到一个view 然后有某种动作,可能是提交一个表单,表单提交,向服务器发送一个请求,请求首先被控制器接受,比如servlet 。servlet收到用户发来的请求,决定由谁(model )来处理这个请求。然后模型返回给服务器servlet,服务器返回给用户view。


1.JavaBean 实际是具有统一接口格式的java类


2.JavaBean的组成:属性(Properties)、方法(Method)、事件(Events)
3.一个JavaBean的例子(该例子是用的Simple属性)


//类名大写,包名小写
package com;
public class FirstBean
{
   private String x;
   public FirstBean()
   {
     //此处为构造函数
    x="This is the first javabean";   
   }
   public void setX()
   {
    this.x=x;//this 指当前类中的x而不是参数x
   }
   public String getX()
   {
     return x;
   }
}


4.JavaBean属性的介绍:

   (1)Simple属性 :伴随一对 get/set (函数)方法,如果这么写,setString..则暗指该类中有一个string的的属性;

   (2)Indexed属性 使用时可以获得一个数组的整个或者一个值。使用实例如下:         


public class B
{
  private int[]={1,2,3,4,5};
 
  //设置整个数组
  public void setB(int[] i)
  {
    b=i;
  }
  //设置单个元素的值
  public void setB(int a, int b)
  {
    b[a]=b;
  }

  //取得整个数组中的值
  public int[] getB()
  {
    return b;
  }
  //获取单个值与setB类似,略。
}



4. Bound、与Constrained属性

JspBean在Jsp中的引用:

4.1.用<jsp:useBean>标记:

<jsp:useBean id="name" class="classname" scope="page|request|session|application"/>

id:代表jsp页面中的实例对象,通过这个对象引用类中的成员,如,id="wq", wq.成员();

class: 代表JavaBean类,如: class="com.Test",引用com包中的Test类;

scope:指明了javabean的生存时间


4.2.用<jsp:setProperty>标记:

功能:将请求页面中的表单值赋值/或者自己想设置的值 给JavaBean中的属性赋值

 <jsp:setProperty name="beanName" last_syntax />

name:表示 已经存在并且具有一定生存范围的JavaBean实例,例如上面的 wq。


last_syntax:表示了四种不同的语法:

(1)property="*"

(2)property="propertyName"

(3)property="propertyName" param="parameterName"

(4)property="propertyName" value="value"


property:是一个很重要的属性,它指定想要设定值的 JavaBean 中的成员名,不建议使用*。

param:根据我的理解,他是请求页面的 表单中的 txt 属性名。

value:代表了直接赋值给 property的属性    


4.3.<jsp:getProperty>标签 与<jsp:setProperty>功能相反,用法一样:

<jsp:getProperty name="BeanName" property="想要获取属性值的那个属性的名字">


JavaBean的生命周期:

1.page:当一个页面有jsp程序产生并传送到客户端时,属于page范围内的javabean也将清除,生命周期介绍。

2.request: 它的生命周期与jsp程序的request对象同步。 由forward串联起来的jsp程序都可以共享 javabean,

仅通过forward就可以把javabean对象传递给下一个jsp,一下是一个小例子:

<jsp:forward page="abc.jsp"/>   //转向abc.jsp页面

 <% String str=request.getParameter("strName")  %> //jsp中对象的使用,获取上一个请求页面中名称为 strName的text中的值。

                  

注:如何向一个页面发送请求?<用表单>


<form name="随便取一个不与其他重复的名字" method="post" action="接受参数的页面" target="_self">
<span style="font-family:Times New Roman;"> </span><input type="text" name="strName">;
<span style="font-family:Times New Roman;"> </span><input type="submit" name="sub" value="提交">
</form>