第6章 在JSP页面中使用JavaBean

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
分页显示数据(图书浏览,在线购物很多地方都会用到) 。 复用?
2.
分离:JSP中提供内置对象方便JSP的开发控制,页面 显示和业务逻辑混杂在一起。
分离?
6.1 JavaBean原理与应用

JavaBean 直译就是咖啡豆。因为java程序是由一个个类共同协作 完成的,每一个类就是一个程序基本单元,就像一颗 颗的咖啡豆。
对象的名称
JavaBean的完整类名
Student s1=new Student()
5.2 JavaBean和JSP的结合
JavaBean的作用域
类型 有效范围 备注 客户离开页面时即释放该bean,不 同用户的scope取值为page的 bean也互不相同 会话期间的各个页面之间可以共享, 不同用户的scope取值为session的 bean也互不相同 不同用户的scope取值为request 的bean也互不相同 不同用户的scope取值为 application的bean都是相同的
广义的JavaBean
就是Java类。
狭义的Javabean 是必须满足一些基本要求的 Java类:如各种setter/getter函数等。
什么是JavaBean?
JavaBean 就是一个java类,但要满足以下条件:
1) 必须有一个无参构造函数

此构造函数在使用<jsp:useBean>实例化JavaBean 类时调用
什么是JavaBean?

例:JavaBean—Student类
web项目名:JavaBeanStudy
包名:com.jsp 类:Student.java
什么是JavaBean?
向Javabean类文件中添加成员变量
package com.jsp; public class Student { private long classno; private String name; private int age; private boolean sex; private String major; }
什么是JavaBean ?

自动加入set/get方法

在代码编辑区右键重构封装字段
则netbeans自动为数据成员生成get/set方法
public static void main(String[] args) { package com.jsp; System.out.println("test JavaBean!"); public class Student { Student a=new Student(); private long classno; a.setAge(27); private String name; a.setClassno(1001); private int age; a.setName("mike"); private boolean sex; a.setSex(true); private String major; a.setMajor("computer"); public Student() { System.out.println("the name is "+a.getName()); System.out.println("the major is "+a.getMajor()); } 顶层包::Student if(a.isSex())System.out.println("it is male"); -classno:long public String getName() { -name:String else System.out.println("it is female"); -age:int return name; }//-sex:boolean 手工添加main,以测试bean -major:String } +Student()() public void setName(String name) +setName()() { +getName()() this.name = name; +setAge()() +getAge()() } +isSex()() +setSex()() public int getAge() { return age; } +getMajor()() +setMajor()() public void setAge(int age) { this.age = age; } +getClassno()() +setClassno()() public boolean isSex() { return sex; } //boolean变量的get函数是isXXX public void setSex(boolean sex) { this.sex = sex; } public String getMajor() { return major; } public void setMajor(String major) { this.major = major;} public long getClassno() { return classno; } public void setClassno(long classno) { this.classno = classno; }
一次性编写,任何地方执行,任何地方重用
10
5.2 JavaBean和JSP的结合
JSP+Javabean的工作模式
服务器
用 户
JSP页面
bean
JSP页面中与JavaBean有关的3个标记
1) <jsp:useBean> 2) <jsp:setProperty> 3) <jsp:getProperty> 创建 Bean 设置 Bean 属性 获取 Bean 属性
5.2 JavaBean和JSP的结合
<jsp:useBean>
JSP页面通过id来识 别Bean;通过 id.method类似的语 创建JavaBean的实例,具有唯一id,及作用域; 句来操作Bean
格式:<jsp:useBean id= "名字"
class= “完整类名" scope= "有效范围” [type= "脚本变量的类型"] > [</jsp:useBean>] 在JSP页面中,必须有相应的import指令 <%@ page import=“tom.jiafei.*” %>
5.2 JavaBean和JSP的结合
<jsp:useBean>
例:在应用程序作用域中,创建了类型 Student的id 为s1的 bean:
<jsp:useBean id="s1" class="Student" scope="application”>
JavaBean的生存范围: page(缺省) request Session application
例:
Student.java----JavaBean · · · · · · · · · · · · · · · · · public class Student { private String name; · · · · · · · · · · · · · · · · · · · · · · · · public String getName(String name) { return this.name; } · · · · · · · · · · · · · · · · · · · · · 转换成字符串 UseJavaBeans.jsp
3)利用request对象传递来的参数来设置JavaBean
<JSP:setProperty name="beanId" property="propertyName" param="paramName"/>
17
例5-3 将网页输入的学生信息传递给JavaBean
Student.java----JavaBean · · · · · · · · · · · · · · · · · input.html
UseJavaBeans.jsp
由request对象传递来的参数
<jsp:useBean id="studnet1" class="com.jsp.Student" scope="page"> <jsp:setProperty name="student1" property="name" param="UserName"/> </jsp:useBean> 或<jsp:setProperty name=“ studnet1 ” property=“name“ value=“张三”/> 直接赋值
5.2 JavaBean和JSP的结合
<jsp:setProperty>
设置JavaBean属性的三种方法;
1) 直接调用JavaBean对象的方法 s1.setClassno(“56789”); 2)用jsp动作标记<jsp:setProperty>
<JSP:setProperty name="beanId" property="propertyName" value=“propertyvalue"/>
<form method="post" action=" UseJavaBeans.jsp "> <p>Please enter your username: <input type="text" name=“Username"> public class Student { private String name; public void setName(String name) { this.name = name; } · · · · · · · · · · · · · · · · · · · · ·
Page
当前页面
Session
会话期间
Request
request期间
Application
Web服务目录下的 所有JSP页面共享
14
5.2 JavaBean和JSP的结合
<jsp:getProperty>
用来获取JavaBean的属性;
获取属性的值,并且把该值转换为 String,然后输出 到客户的输出流当中;
<jsp:useBean id=" student1 " class=" Student " scope="application"/>
<p>Hello, <jsp:getProperty name="student1" property="name"/>.</p> 相当于 student1.getName();
第五章
在JSP页面中使用
JavaBean
第六章 在JSP中使用JavaBean
6.1 Java Bean原理与应用
6.2
JavaBean和JSP的结合
6.1 JavaBean原理与应用
背景:
1.
复用:一次编写,多次使用
网页计数器,几乎所有的网站都会用到,每次都copy这部分代 码么?
数据库的连接,几乎所有网页都会用到。
格式: <jsp:getProperty name="beanId" property="propertyName" />
其中,name是bean的名字,指定要获取哪个bean的 属性值 property取值是该bean的一个属性的名字。 该指令相当于表达式:<%=bean.getXxx()%>
15
Biblioteka Baidu
从上面看出:其实JavaBean就是一个java类
Javabean小结
Javabean是一个可重复使用的软件组件,实际上
是一种Java类,通过封装属性和方法成为具有某 种功能或者处理某个业务的对象,简称bean
Javabean的编写要满足一定的规则 特点:
Write once, run anywhere, reuse everywhere
若JavaBean 类内没有任何构造函数,则系统会自动生成一个 没有任何参数的构造函数。
2) JavaBean 内的属性都应定义为私有的 3) 定义属性xxx的存取函数:
getXxx(),用来获取属性xxx;
setXxx(),用来修改属性xxx。 必须遵守的约定:1)变量的第一个字母是小写的,但方法名内 的第一个字母必须大写;2)方法为public的;3)对boolean类 型的成员变量,允许使用"is"代替上面的"get"和"set "。
相关文档
最新文档