JSP实用教程第五章------JSP与JavaBean

目录

5.1编写和使用JavaBean

5.1.1编写JavaBean

5.1.2保存bean的字节码

 5.1.3创建和使用bean

a.使用bean

b.bean的加载原理

c.bean的有效范围和生命周期

 5.2获取和修改bean属性

5.2.1 getProperty动作标记

5.2.2 setProperty动作标记:

5.3 bean的辅助类:


5.1编写和使用JavaBean

5.1.1编写JavaBean

javabean的定义:javabean其实就是类创建的一个对象,编写javabean就是编写一个java类

为了能让使用bean的应用程序构建工具使用jsp动作标记知道bean的属性和方法,在类的命名上需要遵守一下规则:

(1)如果类的成员变量(也称bean的属性)的名字是xxx,那么为了获取或更改bean的属性值,那么类中必须提供两个方法:

getXxx(),用来获取属性;

setXxx(),用来修改属性;

(2)类中定义的方法的访问权限都必须是public的

(3)类中必须有一个构造方法是public,无参数的

5.1.2保存bean的字节码

为了使jsp页面使用bean,tomcat必须使用相应的字节码文件创建一个对象,及创建一个bean

为了让tomcat服务器能找到字节码文件,必须放到指定的文件中去:

 例如创建了一个bean文件show.java,要把它放在\WEB-INF\classes\tom\jiafei目录下

但是编译的话要在源文件的父目录下编译

classes>javac tom\jiafei\show.java

 5.1.3创建和使用bean

a.使用bean

使用JSP动作标记usebean加载使用bean,语法格式是:

<jsp:useBean id="bean的名字" class="创建bean的类" scope="bean的有效范围"/>

或者 

<jsp:useBean id="bean的名字" class="创建bean的类" scope="bean的有效范围">

</jsp:useBean>

例如:

<jsp:useBean id="bean" class="tom.jiafei.bean" scope="request"/>

特别注意的是,其中"创建bean的类"要带包名 

b.bean的加载原理

在Tomcat服务器管理的pageContent中内置对象中查找是否含有这样的bean(对象)。如果这样的bean(对象)存在,Tomcat服务器就复制这个bean对象给jsp页面,就是常说的Tomcat服务器分配这样的bean给JSP页面

c.bean的有效范围和生命周期

(1)page bean

scope取值为page的bean称为page bean,

bean的有效范围是用户访问的当前页面,存活时间直到当前页面执行完毕。

需要注意的是,不同用户的page bean也是互不相同的,也就是说当两个用户同时访问用一个jsp页面时,一个用户对自己page bean的属性改变不会影响到另一个用户

(2)session bean 

它的有效范围是用户访问的Web服务目录下的各个页面,存活时间是用户的会话期,直到用户的会话完全消失。

如果用户访问Web服务目录下的多个页面,那么每个页面id相同的session bean是同一个bean,因此,用户在某个页面更改了这个session bean的属性值,其他页面的这个session bean的属性值也会发生变化

(3)request bean

有效范围是用户请求的当前页面,存活时间是从用户的请求产生到请求结束。

简单来说,request bean只在当前页面有效,直到响应结束。

需要注意的是,不同用户的request bean的也是互不相同的。也就是说当两个用户同时请求同一个JSP页面时,一个用户对自己request bean属性的改变,不会影响到另一个用户

(4)application bean

有效范围是当前Web服务目录下的各个页面,存活时间直到Tomcat服务器关闭。

任何一个用户对自己application bean属性的改变,都会影响到其他用户

注意:当使用session bean时,要保证用户端支持Cookie 

例5-1中负责创建page bean的类是上述的Circle类,page bean 的名字是circle

<%@ page contentType="text/html" %>
<%@ page pageEncoding = "utf-8" %> 
<style>
   #textStyle{
      font-family:宋体;font-size:36;color:blue 
   }
</style>
<HTML><body bgcolor = #ffccff>
<p id = "textStyle">
<jsp:useBean id="circle" class="tom.jiafei.Circle" scope="page" />
<%--通过useBean标记,获得有效期限是page,名字是circle的bean --%>
圆的初始半径是:<%=circle.getRadius()%>
<%  double newRadius =100;  
    circle.setRadius(newRadius);   //修改半径。
%>
<br>修改半径为<%= newRadius %>
<br><b>圆的半径是:<%=circle.getRadius()%>
<br><b>圆的周长是:<%=circle.circleLength()%>
<br><b>圆的面积是:<%=circle.circleArea()%>
</p></body></HTML>

 5.2获取和修改bean属性

5.2.1 getProperty动作标记

可以使用getProperty动作标记来获取一个JavaBean的属性值。例如:

<jsp:getProperty name="person" property="name" />

该动作标记会调用指定名称的JavaBean(即person)的指定属性(即name)的getter方法,并将返回值输出到客户端。

5.2.2 setProperty动作标记:

可以使用setProperty动作标记来设置一个JavaBean的属性值。例如:

<jsp:setProperty name="person" property="name" value="Bing" />

该动作标记会调用指定名称的JavaBean(即person)的指定属性(即name)的setter方法,并将指定值(即"Bing")作为参数传递。

5.3 bean的辅助类:

除了直接使用动作标记外,还可以使用EL表达式或JSTL标签库来访问和操作JavaBean。例如:

<c:set target="{person}" property="name" value="Bing" />

{person.name}

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值