精品课件-JSP程序设计实用案例教程-ch5

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
op.Counter" /> <% counter.addCount(); %> 当前计数为: <jsp:getProperty name="counter" property="count" /><BR>
JSP程序设计实用案例教程
图5-4 文件夹结构
JSP程序设计实用案例教程
数据库访问公用类
数据库访问是Web应用中一项频繁的工作,为此,我们编写一个 访问数据库的类,以增强代码的重复利用率,这也是模块化的具 体体现。
JSP程序设计实用案例教程
属性 name
property
说明
通过<jsp:useBean>实例化的bean名称
bean属性的名字,如果property属性有值“*”,标记就会在请求对 象中浏览所有的参数去寻找所匹配的请求参数的名称,并且在 bean中输入属性名称和类型。请求中的值被赋给每个所匹配的 bean属性,除非请求参数有值,否则,不会改变 bean的属性
图5-2 文件夹结构
JSP程序设计实用案例教程
【程序代码】 Firstbean.jsp <jsp:useBean id="firstbean" class="bookshop.FirstBean" scope="session" /> <%@ page contentType="text/html;charset=GBK" %> <font size="8"> 3+2=<%= firstbean.add(3,2) %> </font>
完毕向客户端发回响应或转到另一个文件为止。
request 在任何执行相同请求的Jsp文件中使用这个Bean,直 到页面执行完毕向客户端发回响应或转到另一个文件为止。能 够使用Request对象访问这个Bean,比如request.getAttribut e(beanInstanceName)。
session 从创建Bean开始,就能在任何使用相同session的jsp 文件中使用这个Bean。这个Bean存在于整个Session生存周期 内,任何在分享此Session的Jsp文件都能使用同一Bean。注意 在创建这个Bean的Jsp文件中“<% @ page %>”指令中必须指 定“session="true"”。
在实际中有可能一段代码在几百个地方应用,如数据库的连接代 码,每一个JSP文件需要进行数据库操作都要使用这段数据库的 连接代码。如果将这段代码写入JavaBean中,通过JavaBean去连 接,由JSP文件调用,这就实现了代码的重用,体现了JavaBean 的好处,若要修改连接数据库的类型,只需更改一处。
JSP程序设计实用案例教程
例5-2 该例子实现一个简单的计数器。这个计数器有简单的int类型 的count属性。它用来统计当前bean属性被访问的次数。另外它 也包含了相应的设置获取属性的方法。
(1)编写Javabean文件Counter.java 【程序代码】Counter.java package bookshop; public class Counter { int count = 0; public int getCount() { return count; } public void setCount(int count) { this.count = count; } public void addCount() { count++; }JSP程序设计实用案例教程
要赋给bean属性的值。它可以是一个请求时的属性,或者可以接受 一个表达式作为它的值。(一个标记不能够同时具有 param和 value属性)
JSP程序设计实用案例教程
读取属性
<jsp:getProperty>检索 Bean 属性的值,将此值转换成字符串, 并插入输出结果中。 在使用前bean必须被实例化。语法如下: <jsp:getProperty name="name" property="propertyName" /> 其中: Name:bean的名称 Property: 要取值的属性名 Name应该与useBean中的id一致。
JSP程序设计实用案例教程
(2)scope="page | request | session | application"
Bean存在的范围以及id变量名的有效范围。缺省值是page,以下 是详细说明:
page
能在包含“<jsp:useBean>”元素的JSP文件以及
此文件中的所有静态包含文件中使用这个Bean,直到页面执行
JSP程序设计实用案例教程
图5-2 文件夹结构
JSP程序设计实用案例教程
注意: Javabean必须放置于包中,如FirstBean对应的包为bookshop Javabean应放在WEB-INF\classes\下与包名相对应的目录下,如
\WEB-INF\classes\bookshop
JSP程序设计实用案例教程
在一个典型的 JSP 页面中,大部分的 Java 代码和商业逻辑将
不会在内嵌的代码段中,相反它主要通过调用 JavaBeans 组件
来实现将商业逻辑从页面内容中分隔出来,这有利于分工合作。
Java 专家可以专门负责商业逻辑和动态内容,比如编写和维护
JavaBean的代码,而 HTML 专家可以负责页面 的布局和内容的
Application 从创建Bean开始,就能在任何使用相同applicat JSP程序io设n的计J实s用p文案件例教中程使用Bean。这个Bean存在于整个application
(3)class="package.class" 使用new关键字以及class构造器从一个class中实例化一个bean。 这个class不能是抽象的,必须有一个公用的,没有参数的构造 器。这个package的名字区别大小写。
JSP程序设计实用案例教程
JSP程序设计实用案例教程
login.js p
login.js p
doLogi
成功
n.jsp validate
User.(j)a
va executeQ
uery() DBHandle.j Users 数 据
ava


JSP程序设计实用案例教程
思考题 什么是JavaBean?JavaBean的优点是什么? JavaBean类与普通的Java类的关系? 如何编译和部署JavaBean。JavaBean的包名与其部署目录有什么
此变量名来分辨不同的Bean ,这个变量名对大小写敏感,必须 符合所使用的脚本语言的规定,这个规定在Java Language 规范 已经写明。如果Bean已经在别的“<jsp:useBean>”标记中创建, 则当使用这个已经创建过Bean时,id的值必须与原来的那个id值 一致;否则则意味着创建了同一个类的两个不同的对象。
param value
当从请求参数中设置 bean的属性时,bean的属性名称不必与请求参 数中所定义的名称相同。用这个属性来定义请求参数的名称,要 用它的值来设置 bean的属性。如果没有定义 param值,就认为 请求参数的名称与 bean属性的名称相同。如果没有该名称的请 求参数,或者它的值为“ ”,则这个动作对bean的代码,这样做可以做到
责任明确,提高开发的效率。
JSP程序设计实用案例教程
图5-1 JSP与JavaBean的交互
JSP程序设计实用案例教程
第一个Javabean程序
编写JavaBean就是编写一个Java类,所以只要会写类就能编写 一个Bean.
【程序代码】 FirstBean.java package bookshop; public class FirstBean { public int add(int a,int b) { return a+b; } }
JSP程序设计实用案例教程
[程序代码 DBHandle.java] [程序代码 5-3.jsp]
应用实例----用户登录模块 在网上书店中在提交订单或要进入会员中心管理个人信息时,必 须先登录。本模块用户登录的过程为:运行login.jsp,输入用户 名dave、口令123,如图5-8所示。单击登录,成功登录后显示欢 迎页面,如图5-9所示。而如果输入非法的户或口令,登录失败 提示如图5-10所示。如果未登录直接去访问main.jsp,则提示尚 未登录,如图5-11所示。
且是无参数的。
JSP程序设计实用案例教程
(2)编写JSP文件,调用Javabean 【程序代码】counter.jsp <!-- 初始化Counter bean,名为counter --> <jsp:useBean id="counter" scope="session" class="booksh
JSP程序设计实用案例教程
下面的元素创建了一个Currency的实例,把它作为session对象 属性存储起来,使得bean在整个会话期间可用。
<jsp:useBean id=”currency” class=”util.Currency” scope =”session”/>
JSP程序设计实用案例教程
JSP程序设计实用案例教程
JAVABEAN技术
本章目标 Javabean概述 第一个Javabean程序 JavaBean页面指令 带属性的JavaBean 数据库连接公用类
JSP程序设计实用案例教程
Javabean概述
JavaBean是一种软件组件模型。JavaBean组件是可以轻松重用并 集成到应用程序中的java类。任何继承了特定习惯的java类都可 以为JavaBean组件。
JavaBean页面指令
通过下面的格式可以在JSP中声明使用JavaBean组件: <jsp:useBean id=”beanName” class=”classname” scope=”
scope”/> jsp:usebean元素标明在该页面中将使用一个存储在特定域内的
可以访问的bean. 1.id="beanInstanceName" 在所定义的范围中确认Bean的变量,使之能在后面的程序中使用
JSP程序设计实用案例教程
设置属性
<jsp:setProperty>标签和<jsp:useBean>标签一起协作,用来设 置JavaBean的属性。其语法格式如下: <jsp:setProperty name=" beanInstanceName" { property="*" | property="propertyName" param="parameterName" | property="propertyName" value="{string | <%= expression %>}" /> }
JavaBean的删除
如果不再需要,JavaBean也可以被删除
属性范围
删除的方法
page request session application
pageContext.removeAttribute(String name) request.removeAttribute(String name) session.removeAttribute(String name) application.removeAttribute(String name)
(4)type="package.class" 如果这个Bean已经在指定的范围中存在,那么赋予这个Bean一个 的数据开库类型 。如果使用type属性的同时没有使用class或be anName,Bean将不会被实例化。注意package和class的名称区分 大小写。 如果没有这样的bean存在,该语句创建该bean,并把它作为域对 象属性保存。属性id的值决定了bean在域中的的名字。
【程序说明】 如果类的成员变量的名字是xxx,那么为了更改或获取成员变量
的值,在类中使用两个方法: getXxx(),用来获取属性xxx。 setXxx(),用来修改属性xxx。 如本例中的getCount()与setCount()方法,请注意方法中属性
count对应的首字符c一定要大写。 ▪ 对于boolean类型的成员变量,允许使用is代替get。 ▪ 类中方法的访问属性必须是public的。 ▪ Javabean如果有构造函数,那么这个构造函数是public的,并
相关文档
最新文档