IT兄弟连 JavaWeb教程 JSP访问JavaBean
在JSP网页中,既可以通过程序代码来访问JavaBean,也可以通过特定的JSP标签来访问JavaBean。采用后一种方法,可以减少JSP网页中的程序代码,使他更接近与HTML页面。下面介绍访问JavaBean的JSP标签。
1.导入JavaBean类
如果在JSP网页中访问JavaBean,首先要通过<%@ page import %> 指令引入Java类。
2.声明JavaBean对象
<jsp:useBean>标签用来声明JavaBean对象,例如:
<jsp:useBean id="myBean" class="com.xdl.bean.BeanDemo" scope="session" />
上述代码声明了一个名字为"BeanDemo"的JavaBean对象,<jsp:useBean>标签具有以下属性:
id属性:代表JavaBean对象的ID,实际上表示引用JavaBean对象的局部变量名,以及存放在特定范围内的属性名。JSP规范要求存放在所有范围内的每个JavaBean对象都有唯一的ID,例如不允许在会话范围内存在两个ID为"BeanDemo"的JavaBean,也不允许在会话范围和请求范围内分别存在ID为"BeanDemo"的JavaBean。
class属性:用来指定JavaBean的类名。
scope属性:用来指定JavaBean对象的存放范围,可选值包括page(页面范围)、request(请求范围)、session(会话范围)和application(Web应用范围)。scope属性的默认值为page,范例中的scope属性取值为"session",表示会话范围。
以上实例代码中的<jsp:useBean>标签的处理流程如下:
(1)定义一个名为myBean的局部变量。
(2)尝试从scope指定的会话范围内读取名为" myBean"的属性,并且使得myBean局部变量引用具体的属性值,即BeanDemo对象。
(3)如果在scope指定的会话范围内,名为"myBean"的属性不存在,那么久通过BeanDemo类的默认构造方法创建一个BeanDemo对象,并把它存放在会话范围内,令其属性名为"myBean",此外,myBean局部变量也引用这个BeanDemo对象。
3.访问JavaBean属性
JSP提供了访问JavaBean属性的标签,如果要将JavaBean的某个属性输出到网页上,可以用<jsp:getProperty>标签,例如:
<jsp:getProperty name="myBean" property="count" />
以上<jsp:getProperty>标签根据name属性的值"myBean"找到由<jsp:useBean>标签声明的ID为"myBean"的CounterBean对象,然后打印它的count属性,它等价于以下Java表达式:
<%=myBean.getCount() %>
Servlet容器在运行<jsp:getProperty>标签时,会根据property属性指定的属性名,自动调用JavaBean的相应的get方法。属性名和get方法之间存在固定的对应关系。如果在JavaBean中不存在get方法时,那么Servlet容器在运行<jsp:getProperty>标签时就会抛出异常。由此尅安,只有开发人员创建的JavaBean类严格遵守JavaBean的规范,才能保证JSP中的访问JavaBean的标签能正常运行。
如果要给JavaBean的某个属性赋值,可以使用<jsp:setProperty>标签,例如:
<jsp:setProperty name="myBean" property="count" value="1" />
以上<jsp:setProperty>标签根据name属性的值"myBean",找到由<jsp:useBean>标签声明的ID为"myBean"的BeanDemo对象,然后给它的count属性赋值。
值得注意的是,如果一个JSP文件通过<jsp:setProperty>或<jsp:getProperty>标签访问一个JavaBean的属性,要求改JSP文件先通过<jsp:useBean>标签声明这个JavaBean,否则<jsp:setProperty>和<jsp:getProperty>标签在运行时会抛出异常。
IT兄弟连 JavaWeb教程 JSP访问JavaBean的更多相关文章
- IT兄弟连 JavaWeb教程 JSP中的注释
由于JSP页面由HTML.JSP.Java脚本等组成,所以在其中可以使用多种注释格式 HTML中的注释 HTML语言的注释不会被显示在网页中,但是在浏览器中选择查看网页源代码时,还是能够看到注释的信息 ...
- IT兄弟连 JavaWeb教程 JSP内置对象经典面试题
1.请说明cookie.request.session.application的作用域和声明周期? 并说明它们适用与什么场景? request的生命周期是一次请求.可以用于JSP表单提交数据. ses ...
- IT兄弟连 JavaWeb教程 JSP经典面试题
1.JSP标准提供了三种独立的向JSP添加Java代码的技术,请列举. <% %>JSP程序代码块,内部可以直接嵌入Java代码. <%! %>JSP声明区,内部可以声明变量和 ...
- IT兄弟连 JavaWeb教程 JSP内置对象1
JSP内置对象定义 JSP提供了由容器实现和管理的内置对象,也可以称之为隐含对象,这些内置对象不需要通过JSP页面编写来实例化,在所有的JSP页面中都可以直接使用,它们起到了简化页面的作用,JSP的内 ...
- IT兄弟连 JavaWeb教程 JSP内置对象2
application对象 application对象用于保存所有应用程序中的公有数据.它在服务器启动时自动创建,在服务器关闭时销毁,当application对象没有被销毁时,所有用户都可以共享app ...
- IT兄弟连 JavaWeb教程 JSP经典案例
案例需求:定义一个javaBean叫XdlUser,有四个字段int id.String name.int age.double salary.写一个jsp页面,在页面中构建一个列表对象,里面存放几个 ...
- IT兄弟连 JavaWeb教程 JSP语法
在JSP页面中,脚本标识使用的最为频繁,因为他们能够方便.灵活地生成页面中的动态内容,特别是JSP程序代码块.JSP中的脚本标识包括3部分,即JSP声明区.JSP表达式和JSP程序代码块.通过这些标识 ...
- IT兄弟连 JavaWeb教程 JSP定义
JSP页面是指扩展名为.jsp的文件,在一个JSP页面中,可以包括指令标识.HTML代码.JavaScript代码.嵌入的Java代码.注释和JSP动作标识等内容.但这些内容并不是一个JSP页面所必须 ...
- IT兄弟连 JavaWeb教程 JSP内置对象经典案例
案例需求:使用MVC模式编写一个程序当发起一个deptList.do请求时在servlet中准备一个部门列表对象,把这个列表对象放入request作用域中,然后转发到deptlist.jsp,使用js ...
随机推荐
- 图片转base64存储
图片转base64存储 base64.b64encode(r.content) url='http://www.heze.cn/info/themes/heze/Public/tel/?tel=MDU ...
- windows 复制 文本文件内容 到剪切板
shell 打开 type filename | clip
- 一起来学linux:PAM模块
在Linux中执行有些程序时,这些程序在执行前首先要对启动它的用户进行认证,符合一定的要求之后才允许执行,例如login, su等 在Linux中进行身份或是状态的验证程序是由PAM来进行的,PAM( ...
- MQ发送的消息都到了死信队列中了
MQ在发送消息的时候,设置的过期时间太短.(昨天项目上线遇到了,开发中也遇到一次.)谨记!!!
- Xcode各个版本及模拟器下载
如果你嫌在 App Store 下载 Xcode 太慢,你也可以选择从网络上下载: Xcode下载(Beta版打的包是不能提交到App Store上的) 绝对官方源!!!绝对官方源!!!绝对官方源!! ...
- HDU6025 Coprime Sequence —— 前缀和 & 后缀和
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6025 Coprime Sequence Time Limit: 2000/1000 MS (Java/ ...
- RobotFramework教程使用笔记——Selenium2Library库
selenium之前已经学习介绍过了,它是一个支持多语言.多平台.多浏览器的web自动化测试框架,在robotframework中也可以导入selenium库来进行web自动化测试.它使用seleni ...
- hdu 6058
\(f(l,r,k)=\)区间[\(l\),\(r\)]的第k大. \(\sum_{l=1}^{n}{\sum_{r=l}^{n}{f(l,r,k)}}\) 参考题解,claris大佬题解.赛后AC. ...
- Python:深浅拷贝
导入模块: >>> import copy 深浅拷贝: >>> X = copy.copy(Y) #浅拷贝:只拷贝顶级的对象,或者说:父级对象 >>&g ...
- Spring 事务管理高级应用难点剖析: 第 3 部分
本文是“Spring 事务管理高级应用难点剖析” 系列文章的第 3 部分,作者将继续深入剖析在实际 Spring 事务管理应用中容易遇见的一些难点,包括在使用 Spring JDBC 时如果直接获取 ...