`

servlet和jsp核心编程(第2版)第十四章 JavaBean组件在JSP文档中的应用 学习笔记

阅读更多
第十四章 JavaBean组件在JSP文档中的应用
一、bean是什么
1.bean类拥有一个零参数的( 默认)构造函数。
2.bean类不应该有公开的实例变量(字段)。
3.持续性的值应该通过get和set方法来访问。
二、bean的应用
jsp页面中可以使用三种构造函数来构建和操作javabean组件。
(一).jsp:useBean,构建一个新的bean
<jsp:useBean id = "beanName" class = "package.Class"/>
这句的意思就是实例化由class指定的类,并将实例化后的对象绑定到_jspService中的变量。变量的名字由id指定。但要注意,<警
告>一定要使用完全的类限定名。即使我们已经import了相应的包。

2.我们可以把
<jsp:useBean id = "book1" class = "coreservlets.Book">
看做
<%coreservlets.Book book1 = new coreservlets.Book();%>


3.将所有的bean都放在包中,安装在通常用来存放java的代码目录中,单个的类放在WEB-
INF/classes/subdirectoryMatchingPackageName中,JAR放在WEB-INF/lib中。

4.jsp:useBean选项的使用:scope,beanName,type。scope指定指定bean的应用范围,仅当不存在相同的id和scope时,才实例化新的对象。beanName既可以指向类,也可以指定含有序列化bean对象的文件。beanName属性的值被传递给java.beans.Bean的instantiate。type可以实现我们要声明的变量的类型是实际bean类型的超类,或是bean实现的接口。比如
<jsp:useBean id = "thread1" class = "mypackage.MyClass" type ="java.lang.Runnable"> 
实际为
java.lang.Runnable thread1 = new myPackage.MyClass()
;如果实际的类与type不兼容,则会产生ClassCastException异常。如果bean已存在,我们可以不使用class属性,而只使用type属性指定其类型。

(二).jsp:getProperty
,<jsp:getProperty name = "beanName" property = "propertyName"/>

1.获得bean之后,就可以使用jsp:getProperty输出他的属性。<重点提示>在jsp:useBean中,bean的名字由id指出,而在jsp:setProperty和jsp:getProperty中由name属性指出。

2.我们可以把
<jsp:getProperty name = "book1" property = "title">看做<%= book1.getTitle()%>


(三).jsp:setProperty
<jsp:setProperty name = "beanName" property = "propertyName" value = "propertyValue"/>


1.我们可以把
<jsp:setProperty name = "book1" property = "title" value = "Core Servlets and JavaServer page">
视为
<%book1.setTitle("Core Servlets and JavaServer page");%>
后者为显式java语法,前者为XML语法。

三、设置bean的属性:高级技术

1.jsp:setProperty的value属性允许给出的值为请求期间的表达式,如
<jsp :setProperty name = "entry" property = "itemID" value = '<%=request.getParameter("itemID")%>'/>.


2.如果我们的bean的属性不是String类型的那么把属性传给bean就会很复杂,因为我的理解是,由于表单提交的属性值都为String,而bean类中所对应的属性不一定为String,这就遇到了一个类型转换的问题。我们可以在
<jsp:setProperty name ="entry" property = "numItems" param ="numItems"/>
中不使用value属性,而使用param属性指定一个输入参数,然后自动完成类型转换,这个param就对应表单中的name属性的值,并且要注意如果param和property的值相同,那么可以省略param属性。我们倾向于不省略param。

3.将所有属性和同名的请求参数关联起来,注意是同名的请求参数,也就是可以理解为表单中和name属性的值相同的那些bean属性。我们使用
<jsp:setProperty name = "entry" property = "*"/>


四、共享bean
1.使用scope时,系统首先检查指定的位置是否存在指定名称的bean,如果找不到现有的bean时,才会创建新的bean。
2.<jsp:useBean scope = "page"/>省略scope也可以得到该效果,page作用域表示,在处理当前请求期间,除了要将bean对象绑定到局部变量外,还应该将他放在PageContext对象中,将此对象存储在此表示,servlet可以通过调用预定义变量pageContext的getAttribute方法访问它。由于每个页面和每个请求都有不同的pageContext对象,所以scope ="page"(或省略scope)就表示不共享bean,也就是针对每个请求都创建新的bean。

3.scope="request"除了要将bean对象绑定到局部变量外,还应该将他放在HttpServletRequest对象中,看似好像也是非共享bean,但是由于<jsp:include>是在请求该页面时调用此页面,我们可以把其视其为,同一个请求,主次页面都会得到调用,所以主次或jsp页面和servlet页面将会共享请求对象。而<jsp:forward>也会自动转到新的页面,所以jsp:forward的主次页面也会共享请求对象。同理,和这两者作用相同的RequestDispatcher的include或forward方法也共享请求对象。

4.scope="session":除了要将bean对象绑定到局部变量外,还应该将他放在HttpSession对象中。

5.scope="application":除了要将bean对象绑定到局部变量外,还应该将他放在ServletContext对象中。ServletContext可以通过application.getServletContext()。ServletContext由Web应用中多个servlet和jsp共享。ServletContext中的值可以用getAttribute()方法取得。

6.我们可以使用<jsp:useBean...>statements</jsp:useBean>来完成类的初始化,其中的statements只有当创建新的bean时执行。如果使用已有的bean,则不执行。

五共享bean的四种方式
1.<警告>不要为存储在不同位置的bean取相同的名字,服务器可能会发生错误,并取回错误的bean,jsp:useBean中的id都应该使用唯一的值,这就是为什么它用id,而不用name的原因吧。这里不再赘述
分享到:
评论

相关推荐

    Servlet &JSP学习笔记NetBeans源代码

    在这个"Servlet & JSP学习笔记NetBeans源代码"压缩包中,你将找到一系列与Servlet和JSP相关的示例代码,这些代码是基于NetBeans IDE编写的,并且是在Tomcat服务器上运行的。 Tomcat是一个开源的轻量级Web服务器和...

    JSP&Servlet学习笔记.pdf

    JSP和Servlet是Java Web开发中的核心组件,广泛应用于企业级Web应用程序的开发。学习JSP和Servlet对于理解Java Web应用程序的工作原理至关重要。 JSP(JavaServer Pages)是一种动态网页技术,可以创建HTML、XML...

    JSP网络编程学习笔记源代码 part2

    第三篇为“JSP技术基础”,主要讲述JSP的基本语法和内建对象及JSP和Servlet的集成,JavaBean和表达式语言;第四篇为“数据库访问技术”,主要讲述JDBC技术及JSP和Servlet如何通过JDBC访问数据库,以及如何改进数据库...

    servlet和jsp学习笔记

    Servlet和JSP是Java Web开发中的核心技术,它们用于构建动态网页和服务器端应用程序。这篇学习笔记将深入探讨这两个概念,以及它们在实际开发中的应用。 Servlet是Java编程语言的一个接口,由Sun Microsystems(现...

    Jsp&Servlet学习笔记中的完整范例Gossip

    **JSP(JavaServer Pages)与Servlet是Java Web开发中两个关键的技术,它们在Web应用程序中扮演着重要的角色。** **JSP** 是一种动态网页技术,它允许开发者在HTML页面中嵌入Java代码,使得网页具有动态生成的能力...

    Servlet&JSP;学习笔记源代码

    这份"Servlet&JSP学习笔记源代码"是由林信良编著,提供了丰富的实例代码,旨在帮助学习者深入理解这两种技术。 Servlet是Java编程语言的一个接口,允许Java代码与HTTP服务器进行交互。它扩展了服务器的功能,使得...

    新一代JSP网络编程笔记

    本笔记主要涵盖了JavaServer Pages(JSP)技术在网络编程中的应用,旨在帮助读者深入理解JSP的核心概念、语法特点以及实际开发中的最佳实践。JSP是Java平台上的一个标准,它允许开发人员将动态内容嵌入到HTML或XML文...

    Jsp_Servlet学习课堂笔记

    **JSP(JavaServer Pages)和Servlet是Java Web开发中的两个核心技术,它们在构建动态Web应用程序方面发挥着关键作用。** **JSP技术**是一种服务器端脚本语言,用于生成HTML或XML等Web内容。JSP的核心概念包括: 1...

    JSP动态网站开发实践教程(第2版)源代码

    《JSP动态网站开发实践教程(第2版)源代码》是学习JSP技术的宝贵资源,它提供了丰富的实例和实战经验,旨在帮助开发者深入理解JSP在构建动态网站中的应用。通过分析和实践这些源代码,我们可以掌握JSP的核心概念、...

    [其他类别]jsp+servlet+javaBean实现MVC_jspmvc.zip

    在这里,我们主要探讨JSP、Servlet和JavaBean在构建MVC框架中的角色。 1. JSP(JavaServer Pages):JSP是Java Web开发中的视图层技术,主要用于生成动态网页内容。在MVC模式中,JSP主要负责将数据以用户友好的方式...

    笔记本动态企业宣传网站jsp+servlet+javabean

    该项目利用了Java技术栈,包括JSP(JavaServer Pages)、Servlet以及JavaBean,这三者是Java Web开发中的核心组件。 【JSP】(JavaServer Pages)是一种动态网页技术,允许开发者在HTML代码中嵌入Java代码,以实现...

    良葛格JspServlet学习笔记.pdf

    ### 良葛格JspServlet学习笔记 #### 一、引言 在现代Web开发领域,特别是Java EE平台中,JSP (JavaServer Pages) 和 Servlet 技术扮演着非常重要的角色。这两种技术共同构成了Java Web应用的基础,分别侧重于用户...

    jsp完整学习笔记(完整版)

    在实际开发中,通常推荐使用JSP的Model-View-Controller (MVC) 设计模式,结合Servlet、JSP和JavaBean,以及现代框架如Spring MVC来构建高效、可维护的Web应用程序。JSP在现代Web开发中,更多地扮演视图层的角色,与...

    jsp实用教程笔记

    本笔记将围绕“jsp实用教程”这本书的核心内容进行展开,旨在帮助初学者理解和掌握JSP的基础与高级应用。 一、JSP基本概念 1. JSP页面结构:JSP页面由静态内容(HTML、CSS、JavaScript)和动态脚本元素组成,动态...

    JSP学习笔记 jsp学习资料

    本资料包“JSP学习笔记”提供了丰富的学习资源,适用于初学者和有一定经验的开发者,用以提升对JSP的理解和应用能力。 ### 1. JSP基本概念 - **页面组成**:JSP页面由静态内容(HTML、CSS、JavaScript)和动态内容...

    jsp+Javabean 个人信息管理系统

    【标题】"jsp+Javabean 个人信息管理系统"是一个基于Web的个人通讯录应用,主要利用了Java服务器页面(JSP)技术和Javabean组件来实现...学习和理解这个系统,对于掌握JSP和Javabean在实际项目中的应用具有很大的帮助。

    韩顺平jsp九讲笔记

    这份笔记涵盖了JSP的基础知识、核心概念以及实际应用,旨在帮助学习者深入理解和掌握JSP编程。韩顺平老师在IT教育领域有着丰富的经验,他的讲解通常深入浅出,易于理解,深受学员喜爱。 1. **JSP概述**:JSP是Java...

    网上购物系统(JavaBean+Servlet+jsp)_modified_modified.zip

    该资源是一个基于Java技术栈的网上购物系统,涵盖了JavaBean、Servlet和JSP等核心技术,是为毕业设计、课程设计或学习Java Web开发的理想实践案例。这个系统可能包含了完整的业务逻辑,用户界面以及数据库交互,使得...

    Servlet学习笔记Servlet学习笔记

    在Servlet中,我们可能已经设置了JavaBean的属性,EL可以在JSP页面中直接读取这些属性,简化了JSP中的脚本let代码。例如,`${bean.property}`就可以获取JavaBean的property属性值。 五、实战示例 1. 创建Servlet:...

    记事本 jsp+javabean+sqlsever

    在这个记事本应用中,JavaBean通常包含对数据库操作的方法,如添加、删除、更新和查询笔记。JavaBean可以在JSP中通过EL(Expression Language)或JSTL(JavaServer Pages Standard Tag Library)来调用,实现业务...

Global site tag (gtag.js) - Google Analytics