欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > PPT文档下载
     

    第9章 JSP与JavaBeans编程.ppt

    • 资源ID:5030347       资源大小:755KB        全文页数:35页
    • 资源格式: PPT        下载积分:6
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要6
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第9章 JSP与JavaBeans编程.ppt

    第9章 JSP与JavaBeans编程,重点内容: 为什么要使用JavaBeans 实现简单的JavaBeans 在页面中使用JavaBeans 通过JavaBeans实现数据库的访问 JSP与JavaBeans编程实例,一、为什么要使用JavaBeans,JavaBean是一个软件组件,被设计成可以在不同的环境里重复使用。Bean的功能没有限制,例如: 检查一个文件的拼写 预测一只股票的业绩。 图形用户界面上的一个按钮。 实时多媒体解码软件。 一个Bean可以被设计成在用户工作站上独立工作, 可以与其他一组分布式组件协调工作。,1、什么是JavaBeans,JavaBeans就是一个独立的控件,即具有独立的功能,可以重复使用,并且可以与其他控件通讯。 将JavaBeans按功能分类,可分为“可视化的JavaBeans”和“非可视化的JavaBeans”两类。 可视化的JavaBeans就是在画面上可以显示出来的JavaBeans。通过属性接口接收数据并根据接收的信息将数据显示在画面上,这就是可视化JavaBeans的功能。一般用到的组件大部分都是可视化的。 非可视化的JavaBeans,就是没有GUI图形用户界面的JavaBeans。在JSP程序中常用来封装事务逻辑、数据库操作等等,可以很好地实现业务逻辑和前台程序(如jsp文件)的分离,使得系统具有更好的健壮性和灵活性。,2、JavaBeans的种类,二、实现简单的JavaBeans,如何用Eclipse创建一个JavaBeans: (1)首先打开Eclipse程序,然后执行“文件”|“新建”|“类”命令,打开Object Gallery对话框,如图所示。,(2)在源代码中定义变量hello,代码为: String hello=”; 然后,选择“源代码”|“生成Getter和Setter”选项,如图所示。,设置完成后,生成代码如下: 1 package com.jsp.chap09; 2 public class Hello 3 String hello = “; 4 public String getHello() 5 return hello; 6 7 public void setHello(String hello) 8 this.hello = hello; 9 10 ,下面的代码是index.jsp,这段JSP程序将调用前面创建好的Hello World组件。 1 2 3 4 5 8 9 JSP Page 10 11 12 13 14 15 ,三、在页面中使用JavaBeans,1Simple属性 一个简单属性表示一个伴随有一对get/set方法的变量。属性名与和该属性相关的get/set方法名对应。例如,如果有setX和getX方法,则暗指有一个名为“X”的属性。如果有一个方法名为isX,则通常暗指“X”是一个布尔属性(即X的值为true或false)。例: 1 public class example1 extends Canvas 2 /属性名为ourString,类型为字符串 3 string ourString = “Hello“; 4 /example1()是example1的构造函数 5 public example1() 6 setBackground(Color.red); 7 setForeground(Color.blue); 8 9 public void setString(String newString) 10 ourString = newString; 11 12 public String getString() 13 return ourString; 14 15 ,1、JavaBeans的属性,2Indexed属性 一个Indexed属性表示一个数组值。使用与该属性对应的set/get方法可取得数组中的数值。该属性也可一次设置或取得整个数组的值。例: 1 import java.awt.Canvas; 2 import java.awt.Color; 3 public class example2 extends Canvas 4 /dataset是一个indexed属性 5 int dataSet = 1, 2, 3, 4, 5, 6; 6 public example2() /* 设置整个数组*/ 7 setBackground(Color.red); 8 setForeground(Color.blue); 9 ,10 public void setDataSet(int x) /* 设置数组中的单个元素值*/ 11 dataSet = x; 12 13 public void setDataSet(int index, int x) /* 设置整个数组值 */ 14 dataSetindex = x; 15 16 public int getDataSet() 17 return dataSet; 18 19 public int getDataSet(int x) 20 return dataSetx; 21 22 ,3Constrained属性 一个JavaBeans的constrained属性,是指当这个属性的值要发生变化时,与这个属性已建立了某种连接的其它Java对象可否决属性值的改变。Constrained属性的监听者通过抛出PropertyVetoException来阻止该属性值的改变。例:,1 public class JellyBean extends Canvas 2 private PropertyChangeSupport changes=new PropertyChangeSupport(this); 3 private VetoableChangeSupport Vetos=new VetoableChangeSupport(this); 4 5 public void setPriceInCents(int newPriceInCents)throws PropertyVetoException 6 int oldPriceInCents=ourPriceInCents; 7 vetos.fireVetoableChange(“priceInCents“,new Integer(OldPriceInCents),new Integer(newPriceInCents); 8 ourPriceInCents=newPriceInCents;,9 changes.firePropertyChange(“priceInCents“,new Integer(oldPriceInCents),new Integer(newPriceInCents); 10 11 public void addVetoableChangeListener(VetoableChangeListener l) 12 vetos.addVetoableChangeListener(l); 13 14 public void removeVetoableChangeListener(VetoableChangeListener l) 15 vetos.removeVetoableChangeListener(l); 16 17 18 ,4Bound属性 一个Bound属性是指当该种属性的值发生变化时,要通知其它的对象。每次属性值改变时,这种属性就点火一个PropertyChange事件。事件中封装了属性名、属性的原值、属性变化后的新值。这种事件是传递到其它的Bean,至于接收事件的Bean应做什么动作由其自己定义,例:,1 import java.awt.Canvas; 2 import java.beans.PropertyChangeListener; 3 import java.beans.PropertyChangeSupport; 4 5 public class example3 extends Canvas 6 7 String ourString = “Hello“; 8 private PropertyChangeSupport changes = new PropertyChangeSupport(this); 9 10 public void setString(string newString) 11 String oldString = ourString; 12 ourString = newString; 13 changes.firePropertyChange(“ourString“, oldString, newString); 14 ,15 16 public String getString() 17 return ourString; 18 19 20 public void addPropertyChangeListener(PropertyChangeLisener l) 21 changes.addPropertyChangeListener(l); 22 23 24 public void removePropertyChangeListener(PropertyChangeListener l) 25 changes.removePropertyChangeListener(l); 26 27 ,1 的作用是定义生成和使用Bean的环境。即如果使用,就可以定义Bean的名称、类型、以及使用期限等内容。格式如下: 范例 ,2、在JSP中使用JavaBeans,2 是设定通过定义的Bean对象属性的标记。的语法格式有以下4种: 字符串常量: 或 请求参数: 或 匹配Bean中指定的属性: 或 表达式:”/, name属性:name属性用来指定JavaBeans的名称,这个JavaBeans必须首先使用操作指令来实例化。 property属性:property属性被用来指定JavaBeans需要定制的属性的名称。如下图所示 Param属性:使用request中的一个参数值来指定Bean中的一个属性值。 Value属性:使用指定的值来设定Bean属性。,3 动作用于从一个JavaBeans中获取某个属性的值,无论原先这个属性是什么类型的,都将被转换为一个String类型的值。语法格式为: Name属性 这个属性用来指定JavaBeans的名称,这个JavaBeans组件对象必须已经使用操作指令实例化了。 Property属性 Property属性用来指定要读取的JavaBeans组件对象的属性的名称。,4JavaBeans的作用域 JavaBeans组件设定的Scope属性,使得JavaBeans组件对于不同的任务具有不同的作用域。Scope属性具有4个可能的值分别是page、request、session和application,分别代表JavaBeans的4种不同的作用域。 Page的作用域 Page Scope类型的JavaBeans组件的作用域为JSP 程序的运行周期,当JSP程序运行结束那么该JavaBeans组件的生命周期也就结束了。PageScope类型的JavaBeans组件程序的作用范围只限于当前的JSP程序中,它无法在别的JSP程序中起作用,对应于不同的客户端请求,服务器都会创建新的JavaBeans组件对象,而且,一旦客户端的请求执行完毕,那么该JavaBeans对象会马上注销,无法为别的客户端请求所使用。,1 6 7 8 9 10 11 Day of month:is 12 Year:is 13 Month:is 14 Time:is 15 16 DST Offset:is 17 Zone Offset:is 18 19 20 21 , Request的作用域 当JavaBeans的Scope属性值被设为request时,和都会把JavaBeans带到下一页面。 例: 调用beanPage.jsp页 , Session的作用域 如果一个JavaBeans组件的Scope 属性值为session,这一类型的JavaBeans组件的作用域就是某个会话过程所经历的时间,例如:,1 7 8 第二页 9 10 你已经访问了 11 个页面, Application的作用域 如果JavaBeans的Scope属性被指定为application,那么它的作用域和Application对象一样。使用这种类型的JavaBeans组件,可以在多个用户之间共享全局信息。 1 6 7 8 您是第 9 位访客, 几个不同属性的作用域的区别 例。 1 package test; 2 import java.util.Date; 3 import java.text.*; 4 public class Common 5 Date d = new Date(); 6 public String now(String s) 7 SimpleDateFormat formatter = new SimpleDateFormat(s); 8 return formatter.format(d); 9 10 date.jsp清单如下: 1 2 ,通过JavaBeans来访问数据库步骤为: (1)建立一个JavaBeans组件,将它设置为JavaBeans的类文件 (2)使用JavaBeans来完成与数据库的连接 实例介绍在JSP中利用JavaBeans通过JDBC-ODBC Bridge来访问数据库。 (1)创建一个JavaBeans,命名为DBCon.java,并保存在支持JSP的Web服务器的JavaBeans包下,DBCon.java文件主要是封装与数据库的连接操作。下面是DBCon.java的代码,在JSP程序中将调用它。,四、通过JavaBeans实现数据库的访问,1 package com.jsp.chap09; 2 import java.io.*; 3 import javax.servlet.http.*; 4 import java.sql.*; 5 public class DBCon implements HttpSessionBindingListener 6 /当变量加入Session时自动执行此函数 7 public void valueBound(HttpSessionBindingEvent event) 8 9 /Session变量关闭时执行此函数 10 public void valueUnbound(HttpSessionBindingEvent event) 11 12 private Connection con = null; 13 public DBCon() 14 /建立数据库链接 15 BulidConnection(); 16 17 /建立数据库链接的方法 18 private void BulidConnection() 19 try 20 /加载数据库驱动程序 21 Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver“); 22 /与数据库连接,23 con = DriverManager.getConnection(“jdbc:odbc:user“); 24 catch (Exception ex) 25 System.out.println(ex.toString(); 26 27 28 public Connection getConnection() 29 /如果con为null,则重新建立连接 30 if (con = null) 31 BulidConnection(); 32 33 return con; 34 35 public void close() 36 try 37 /关闭con 38 con.close(); 39 con = null; 40 catch (SQLException ex) 41 42 43 ,当执行查询操作时,将打开index.jsp页面,并显示出数据库中的相应的信息,下面是index.jsp文件的代码,代码中调用了前面编译好的JavaBeans。 1 2 3 4 5 6 通过Javabeans访问数据库 7 8 9 10 通过Javabeans访问数据库 11 12 13 14 15 16 ,24 25 26 编号 27 姓名 28 年龄 29 性别 30 31 35 36 37 38 39 40 41 48 49 50 51 ,例:实现了简单的购物车功能,用户对商品进行选择购买,在主页面中选择商品后,如果不满意,可以在商品确认页面中将该商品删除掉,具有一定的互动性。效果如图所示。,数据库的表结构如表9-1所示,五、JSP与JavaBeans编程实例,CuCart.java文件定义了购物车的基本模型。另外,CuCart.java文件和编译好的类文件都必须放置在test文件夹中,下面是CuCart.java文件的代码: 1 package com.jsp.chap09; 2 import javax.servlet.http.*; 3 import java.util.Vector; 4 import java.util.Enumeration; 5 public class CuCart 6 Vector v = new Vector(); 7 String submit = null; 8 String item = null; 9 private void addItem(String name) 10 v.addElement(name); 11 ,12 private void removeItem(String name) 13 v.removeElement(name); 14 15 public void setItem(String name) 16 item = name; 17 18 public void setSubmit(String s) 19 submit = s; 20 21 public String getItems() 22 String s = new Stringv.size(); 23 v.copyInto(s); 24 return s; 25 26 public void processRequest(HttpServletRequest request) 27 if (submit = null) 28 addItem(item); 29 30 if (submit.equals(“添加“) 31 addItem(item); 32 else if (submit.equals(“删除“) 33 removeItem(item); 34 35 reset(); 36 37 private void reset() 38 submit = null; 39 item = null; 40 41 ;,下面是index.jsp文件的代码,代码中定制了程序中的商品信息: 1 2 3 4 购物车 5 6 7 8 9 10 请添加或删除商品: 11 12 添加商品: 13 14 桑塔纳2000豪华型 15 奥拓-都市贝贝 16 红旗V6 17 爱国者MP3-F158 18 联想V48数码相机 19 联想G828手机 20 JSP高级应用 21 6500帧的“帝国战车”鼠标 22 23 24 25 26 27 28 29 30 ,carts.jsp文件会接收从index.jsp文件传送过来的商品信息,并在浏览器中显示出来,然后再调用index.jsp文件,增强了互动性,使客户可以对商品进行选择,下面是代码: 1 2 3 商品选择 4 5 6 7 10 11 您已选购的商品: 12 13 17 18 21 22 23 24 25 /在carts.jsp文件中包含index.jsp文件,使carts.jsp中显示出index.jsp的内容 26 27 28 29 ,感谢,

    注意事项

    本文(第9章 JSP与JavaBeans编程.ppt)为本站会员(韩长文)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开