- 浏览: 85106 次
文章分类
最新评论
第十四章 JavaBean组件在JSP文档中的应用
一、bean是什么
1.bean类拥有一个零参数的( 默认)构造函数。
2.bean类不应该有公开的实例变量(字段)。
3.持续性的值应该通过get和set方法来访问。
二、bean的应用
jsp页面中可以使用三种构造函数来构建和操作javabean组件。
(一).jsp:useBean,构建一个新的bean
告>一定要使用完全的类限定名。即使我们已经import了相应的包。
2.我们可以把
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:getProperty
1.获得bean之后,就可以使用jsp:getProperty输出他的属性。<重点提示>在jsp:useBean中,bean的名字由id指出,而在jsp:setProperty和jsp:getProperty中由name属性指出。
2.我们可以把
(三).jsp:setProperty
1.我们可以把
三、设置bean的属性:高级技术
1.jsp:setProperty的value属性允许给出的值为请求期间的表达式,如
2.如果我们的bean的属性不是String类型的那么把属性传给bean就会很复杂,因为我的理解是,由于表单提交的属性值都为String,而bean类中所对应的属性不一定为String,这就遇到了一个类型转换的问题。我们可以在
3.将所有属性和同名的请求参数关联起来,注意是同名的请求参数,也就是可以理解为表单中和name属性的值相同的那些bean属性。我们使用
四、共享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的原因吧。这里不再赘述
一、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核心编程(第2版)第十六章 简化对Java代码的访问:jsp2.0表达式语言学习笔记
2012-08-23 21:49 719第十六章:简化对Java代 ... -
servlet和jsp核心编程(第2版)第十五章servlet和JSP的集成,模型-视图-控制器构架
2012-08-23 14:59 731第十五章:servlet和JSP的集成,模型-视图-控制器构架 ... -
servlet和jsp核心编程(第2版)第十三章 在JSP页面中包含文件和applet学习笔记
2012-08-20 15:53 856第十三章 在JSP页面中包 ... -
servlet和jsp核心编程(第2版)第十二章page指令学习笔记
2012-08-19 17:00 749第十二章 控制所生成的servlet的结构:JSP page指 ... -
servlet和jsp核心编程(第2版)第十一章jsp脚本元素的调用学习笔记
2012-08-18 21:09 811第十一章 用JSP脚本元素 ... -
servlet和jsp核心编程(第2版)第十章jsp技术概述学习笔记
2012-08-18 10:37 681第十章jsp技术概述 学习笔记: 一servlet和jsp的区 ... -
servlet和jsp核心编程(第2版)第九章会话跟踪学习笔记
2012-08-17 17:30 889第九章 会话跟踪 核心 ... -
servlet和jsp核心编程(第2版)第八章cookie管理学习笔记
2012-08-08 12:27 836第八章 cookie管理 核心方法: 1.在创建cookie对 ... -
servlet和jsp核心编程(第2版)第七章服务器响应的生成:HTTP响应报头学习笔记
2012-08-06 17:45 722第七章:服务器响应的 ... -
servlet和jsp核心编程(第2版)第六章服务器响应的生成:HTTP状态代码学习笔记
2012-08-05 10:52 732第六章:服务器响应的生成:HTTP状态代码 核心方法: 1.在 ... -
servlet和jsp核心编程(第2版)第五章客户请求的处理:HTTP请求报头学习笔记
2012-08-02 21:36 695第五章客户请求的处理:HTTP请求报头 核心方法: 1.在使用 ... -
servlet和jsp核心编程(第2版)第四章客户请求的处理,表单数据学习笔记
2012-07-31 16:05 1229第四章学习笔记 客户请 ... -
servlet和jsp核心编程(第2版)第三章servlet基础学习笔记
2012-07-29 10:43 703第三章:servlet基础 核心方法: 1.使用HTML验证器 ...
相关推荐
第三篇为“JSP技术基础”,主要讲述JSP的基本语法和内建对象及JSP和Servlet的集成,JavaBean和表达式语言;第四篇为“数据库访问技术”,主要讲述JDBC技术及JSP和Servlet如何通过JDBC访问数据库,以及如何改进数据库...
关于Jsp以及Servlet的学习笔记,包含有JavaBean 自定义标签库等等一系列重点的概念以及代码 绝对超值
Struts2 是一个非常优秀的MVC框架,基于Model2 设计模型 由传统Struts1和WebWork两个经典框架发展而来 Struts2框架=Struts2+XWork Strust2 核心功能 允许POJO(Plain Old Java Objects,简单javabean对象,没有继承,...
jsp 公司管理系统的制作原理JSP+Servlet+JavaBean
Servlet,请求和响应机制,jsp动态网页技术,会话跟踪 javaBean,JSP常用标签和自定义标签,AJAX实例,以及监听器,过滤器和BaseServlet和分页
《学习笔记》:临近期末考试,javaweb应用开发 布置的一项简单的在线考试系统,基于MVC模式(jsp+servlet+javabean)以及mySQL数据库,大家共同进步,谢谢。
J2EE相关技术知识点经典总结,外加学习笔记,重点突出,清楚明白。
桂浩 解释器构造实验1 含JAVACC学习笔记 高分作业
除此之外,第11、第14章还提供了两个完整的实例来讲解Struts2开发新特性和开发SSH的详细步骤.通过对这两章的学习,读者可以对SSH开发模式有更透彻的理解和认识。《跟我学Java Web》光盘中提供了丰富的内容,包括全书...
\contentsline {chapter}{Contents}{2}{section*.1} {1}Java基础}{17}{chapter.1} {1.1}基本语法}{17}{section.1.1} {1.2}数字表达方式}{17}{section.1.2} {1.3}补码}{19}{section.1.3} {1.3.1}总结}{23}{...
基础知识阐述和高级知识进阶,难点解疑,热点分析。...包括jsp基础,servlet,数据库,javabean, structs,mvc设计,spring,jsp进阶,hibernate,ssh项目实战,jsp-dao-mvc进阶等章节,是学习参考不错的资料。
这是上课时直接做的笔记,包括老师多年以来的教学经验和开发经验,希望对大家有帮助!
JSTL + JSP + Servlet + JavaBean + BeanUtils + FileUpload + JavaMail + DBUtils(JDBC) + C3P0 + MySQL + MyEclipse10+ Tomcat7.0 + JDK6 + Windows MVC 模式 JavaEE 三层结构 web层 service层 dao层 DAO 模式