资源预览内容
第1页 / 共31页
第2页 / 共31页
第3页 / 共31页
第4页 / 共31页
第5页 / 共31页
第6页 / 共31页
第7页 / 共31页
第8页 / 共31页
第9页 / 共31页
第10页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第五章在JSP页面中使用JavaBean 第六章 在JSP中使用JavaBean Java Bean原理与应用6.1JavaBean和JSP的结合6.26.1 JavaBean原理与应用背景:1.复用:一次编写,多次使用网页计数器,几乎所有的网站都会用到,每次都copy这部分代码么?数据库的连接,几乎所有网页都会用到。分页显示数据(图书浏览,在线购物很多地方都会用到) 。复用?1.分离:JSP中提供内置对象方便JSP的开发控制,页面 显示和业务逻辑混杂在一起。 分离?6.1 JavaBean原理与应用lJavaBean直译就是咖啡豆。因为java程序是由一个个类共同协作完成的,每一个类就是一个程序基本单元,就像一颗颗 的咖啡豆。广义的JavaBean就是Java类。狭义的Javabean是必须满足一些基本要求的 Java类:如各种setter/getter函数等。 什么是JavaBean?lJavaBean 就是一个java类,但要满足以下条件:1) 必须有一个无参构造函数u 此构造函数在使用实例化JavaBean 类时调用u 若JavaBean 类内没有任何构造函数,则系统会自动生成一个没有任何参数的构造函数。2) JavaBean 内的属性都应定义为私有的3) 定义属性xxx的存取函数:getXxx(),用来获取属性xxx; setXxx(),用来修改属性xxx。 必须遵守的约定:1)变量的第一个字母是小写的,但方法名内的第 一个字母必须大写;2)方法为public的;3)对boolean类型的成员变量,允许使用“is“代替上面的“get“和“set “。l例:JavaBeanStudent类web项目名:JavaBeanStudy包名:com.jsp类:Student.java什么是JavaBean?什么是JavaBean?l向Javabean类文件中添加成员变量package com.jsp; public class Student private long classno;private String name;private int age;private boolean sex;private String major; l自动加入set/get方法l在代码编辑码编辑 区右键键重构封装字段l则则netbeans自动为动为 数据成员员生成get/set方法什么是JavaBean ?package com.jsp; public class Student private long classno;private String name;private int age;private boolean sex;private String major;public Student() public String getName() return name;public void setName(String name) this.name = name;public int getAge() return age; public void setAge(int age) this.age = age; public boolean isSex() return sex; /boolean变量的get函数是isXXXpublic 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; public static void main(String args) System.out.println(“test JavaBean!“);Student a=new Student();a.setAge(27);a.setClassno(1001);a.setName(“mike“);a.setSex(true);a.setMajor(“computer“);System.out.println(“the name is “+a.getName();System.out.println(“the major is “+a.getMajor();if(a.isSex()System.out.println(“it is male“);else System.out.println(“it is female“);/手工添加main,以测试bean从上面看出:其实JavaBean就是一个java类Javabean小结lJavabean是一个可重复使用的软件组件,实际上 是一种Java类,通过封装属性和方法成为具有某 种功能或者处理某个业务的对象,简称beanlJavabean的编写要满足一定的规则l特点:Write once, run anywhere, reuse everywhere一次性编写,任何地方执行,任何地方重用105.2 JavaBean和JSP的结合lJSPJavabean的工作模式lJSP页面中与JavaBean有关的3个标记1) 创建 Bean2) 设置 Bean 属性3) 获取 Bean 属性用 户JSP页面bean服务器5.2 JavaBean和JSP的结合l创建JavaBean的实例,具有唯一id,及作用域;格式:在JSP页面中,必须有相应的import指令 JSP页面通过id来识 别Bean;通过 id.method类似的语 句来操作Beanl例:在应用程序作用域中,创建了类型 Student的id 为s1的 bean:5.2 JavaBean和JSP的结合对象的名称 JavaBean的完整类名JavaBean的生存范围 : page(缺省) request Session application相当于Student s1=new Student()5.2 JavaBean和JSP的结合lJavaBean的作用域14类型有效范围备注Page当前页面客户离开页面时即释放该bean,不 同用户的scope取值为page的 bean也互不相同Session会话期间会话期间的各个页面之间可以共享 ,不同用户的scope取值为session 的bean也互不相同Requestrequest期间不同用户的scope取值为request的 bean也互不相同ApplicationWeb服务目录下的 所有JSP页面共享不同用户的scope取值为 application的bean都是相同的5.2 JavaBean和JSP的结合l用来获取JavaBean的属性;获取属性的值,并且把该值转换为 String,然后输出到客户的输出流当中;格式: 其中,name是bean的名字,指定要获取哪个bean的 属性值 property取值是该bean的一个属性的名字。该指令相当于表达式:15例: public class Student private String name; public String getName(String name) return this.name; Student.java-JavaBeanHello, .相当于 student1.getName();UseJavaBeans.jsp转换成字符串5.2 JavaBean和JSP的结合l设置JavaBean属性的三种方法;1) 直接调用JavaBean对象的方法s1.setClassno(“56789”);2)用jsp动作标记3)利用request对象传递来的参数来设置JavaBean17Please enter your username: 或 直接赋值 public class Student private String name;public void setName(String name) this.name = name; input.htmlUseJavaBeans.jspStudent.java-JavaBean例5-3 将网页输入的学生信息传递给JavaBean由request对象传递来的参数l在P133 input.html中将param.jsp改为UseJavaBean.jsp倒数第5行加入: 是否男生l将P134 param.jsp程序名改为UseJavaBean.jsp在后 面加入在程序的倒数第3行加入:是否男生更正:P133input.htmlUseJavaBean.jsp 使用javaBean-Student 姓名年龄 专业 是否男生 UseJavaBean.jsp 【法1】用标记将request传递来的参数数据传递给JavaBean声明avaBean的实例对象【法2】用对象方法将request传递来的参数传递给JavaBean【法1】标记获得javaBean属性【法2】直接用对象方法获得JavaBean的属性5.2.2 JavaBean的Scope属性 l每个JavaBean都有一个有效范围,Bean只在它定义的范围里才能使用,在它的活动范围外将 无法访问到它。l利用Scope属性来声明JavaBean的有效范围。 1.Page (缺省)2.Request3.Session4.Application5.2.2 JavaBean的Scope属性 lpage (Bean的缺省有效范围)能在包含“”元素的JSP文件及此文件中的所有静态包含文件中使用,直到页面执行完毕 向客户端发回响应或转到另一个文件为止。lrequest作用于任何相同请求的JSP文件中,直到页面执行完毕向客户端发回响应或在此之前已通过某种方式( 如重定向、链接等方式)转到另一个文件为止。还可通过使用request对象访问bean;如:request.getAttribute(beanName)。5.2.2 JavaBean的Scope属性 lsession从创建Bean开始,就能在任何使用相同session的JSP 文件中使用这个Bean。这个Bean存在于整个session生存周期内,任何分享此 session的JSP文件都能使用同一Bean。在session的生 存周期内,对此bean属性的任何改动,都会影响到在 此session内的任意page、任意request对此bean的调用。 前提是必须在创建此Bean的文件里事先用page指令 指定了session=true。5.2.2 JavaBean的Scope属性 lapplication作用于整个application的生存周期内,从创建Bean开 始,就能在任何使用相同application的JSP文件中使 用Bean。这个Bean存在于整个application生存周期内,任何在 分享此application的JSP文件都能使用同一Bean。在application周期内,对此bean属性的任何改动,都 会影响到此application内另一page、另一request及另 一session里对此bean的调用。JSP与JavaBean结合的简单例子l网页计数器JSP变量实现JavaBean的形式封装实现l动态网
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号