java web 开发

您所在的位置:网站首页 jsp如何调用javabean的方法 java web 开发

java web 开发

2024-07-11 18:08| 来源: 网络整理| 查看: 265

系列文章目录

文章目录 5.1 编写和使用JavaBean5.2 获取和修改bean的属性值5.3 bean的辅助类5.4 JSP与bean结合的简单例子

前言

本章难点为掌握如何获取和修改bean的属性

5.1 编写和使用JavaBean 5.1.1 编写JavaBean

编写JavaBean 就是编写一个Java的类,所以只要会写类就能编写一个JavaBean。 这个类创建的一个对象称为一个JavaBea#,简称 bean,分配给bean的变量(成员变量),也称bean 的属性。为了能让使用bean 的应用程序构建工具(比如Tomcat服务器)使用JSP动作标记知道 bean的属性和方法,在类的命名上需要遵守以下规则: (1)如果类的成员变量(也称bean的属性)的名字是xxx,那么为了获取或更改bean的属性的值,类中必须提供两个方法: getXxx(),用来获取属性xxx。setXxx(),用来修改属性xxx。 (2)类中定义的方法的适问权限都必须是public的。 (3)类中必须有一个构造方法是 public,无参数的。  

5.1.2 保存bean的字节码

为了使JSP页面使用bean,Tomeat服务器必须使用相应的字节码文件创建一个对象,即创建一个bean 为了让Tomcat 服务器能找到字节码文件,字节码文必须保存在特定的目录中。 ch5 \WEB-INF\classes 目录下,根据包名对应的路径,在classes目录下再建立相应的子目录。例如,包名tom. jiafei对应的路径是tom\jiafei,那么在 classes目录下建立子目录结构tom\jiafei 将创建bean的字节码文件,例如Circle. class,复制到\WEB-INF\classes\ tom\jiafei 中为了调试程序方便,可以直接按照 bean的包名将 bean的源文件(例如Circle. java)保存在\WEB-INF\classes\tom\jiafei 目录中,然后用命令行进人tom\jiafei 的父目录classes(不要进人tom或jiafei 目录)编译Circle.java:

classes > javac tom\jiafei\Circle. java

5.1.3 创建和使用bean

使用bean

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

需要特别注意的是,其中的“创建bean的类”要带有包名,例如:

class= "tom. jiafei.Circle"

      2.bean 的加载原理

当JSP 页面使用JSP动作标记useBean加载一个bean时,Tomcat 服务器首先根据JSP的动作标记 useBean中id给出的bean名字以及 scope 给出的使用范围(bean 生命周期),在Tomcat 服务器管理的pageContent 内置对象中查找是否含有这样的bean(对象)。如果这样的bean(对象)存在,Tomcat 服务器就复制这个bean(对象)给JSP 页面,就是常说的Tomcat 服务器分配这样的bean给JSP 页面。 如果在pageContent 中没有查找到JSP动作标记要求的bean,就根据class指定的类创建一个bean,并将所创建的bean添加到pageContent中。通过Tomcat服务器创建bean可以看出,首次创建一个新的bean时需要用相应的字节码文件创建对象,当某些JSP页面再需要同样的bean时,Tomcat服务器直接将pageContent中已有的bean分配给JSP页面,从而提高JSP页面bean的使用效率。

注:如果修改了字节码文件,必须重新启动Tomcat服务器才能使用新的字节码文件。

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

(1) page bean。 scope 取值为page的 bean 称为page bean,page bean 的有效范围是用户访问的当前页面,存活时间直到当前页面执行完毕。需要注意的是,不同用户(浏览器)的page bean 也是互不相同的。也就是说,当两个用户同时访问同一个JSP 页面时,一个用户对自己 page bean 的属性的改变,不会影响到另一个用户。

(2) session bean。 scope 取值为session的bean 称为 session bean, session bean的有效范 围是用户访问的Web服务目录下的各个页面,存活时间是用户的会话期(session)间,直到用户的会话消失(session对象达到了最大生存时间或用户关闭自己的浏览器以及服务器关闭,见4.3.1节)。也就是说,当两个用户同时访问同一个Web服务目录,一个用户对自己session bean属性的改变,不会影响到另一个用户(一个用户在不同Web服务目录的session bean互不相同)。

(3) request bean。 scope取值为 request 的bean称为request bean, request bean 的有效范围是用户道求的当前页面,存活时间是从用户的请求产生到请求结束。也就是说,当两个用户同时请求同一个JSP页面时,一个用户对自己request bean属性的改变,不会影响到另一个用户。

(4) application bean。 scope 取值为application的bean 称为application bean ,application bean 的有效范围是当前Web服务目录下的各个页面,存活时间直到Tomcat 服务器关闭。Tomcat 服务器为访问Web服务目录的所有用户分配一个共享的bean,即不同用户的application bean 也都是相同的一个。也就是说,任何一个用户对自己application bean 属性的改变,都会影响到其他用户(不同Web服务目录的application bean互不相同)。

5.2 获取和修改bean的属性 5.2.1 getProperty动作标记

使用getProperty动作标记可以获得bean的属性值,并将这个值用串的形式发送给用户的浏览器。使用getProperty动作标记之前,必须使用useBean 动作标记获得相应的bean。

getProperty 动作标记的语法格式是:

其中,name 取值是bean的id,用来指定要获取哪个bean的属性的值,property取值是该bean的一个属性的名字。

注:让 request调用 setCharacterEncoding方法设置编码为UTF-8,以避免显示bean的属性值出现乱码现象。

5.2.2 setProperty动作标记

使用setProperty动作标记可以设置bean的属性值。使用这个标记之前,必须使用useBean标记得到一个相应的bean。

setProperty动作标记可以通过俩种方式设置bean的属性值。

 (1)将 bean属性值设置为一个表达式的值或字符序列。

(2)通过HTTP表单的参数值来设置bean的相应属性值。

1.form 表单的所有参数值设置bean相对应属性值的使用格式如下:

在setProperty 标记的上述用法中不具体指定)bean属性值将对应 form 表单中哪个参数指定的值,系统会自动根据名字进行匹配对应,但要求bean属性的名字必须在form表单币有名称相同的参数名字相对应,Tomcat服务器会自动将参数的字符串值转换为bean 相对应的属性值。

2.用form表单的某个参数的值设置bean的某个風性值的使用格式如下:



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3