文档章节

40 JavaBean

恋佳
 恋佳
发布于 2015/07/22 14:06
字数 698
阅读 16
收藏 0

1使得HTML与Java程序分离,这样便于维护代码。如果把所有的程序代码都写到JSP网页中,会使得代码繁杂,难以维护
•可以降低开发JSP网页人员对Java编程能力的要求
•JSP侧重于生成动态网页,事务处理由JavaBean来完成,这样可以充分利用JavaBean组件的可重用性特点,提高开发网站的效率



2一个标准的JavaBean有以下几个特性:

–JavaBean是一个公共的(public)类
–JavaBean有一个不带参数的构造方法

–JavaBean通过setXXX方法设置属性,通过getXXX方法获取属性

(底层通过反射实现set get方法)

3 JavaBean使用

Step1:定义JavaBean类

package com.songxu.severlet;

public class JavaBeanTest
{
	private String name="bingjia";
	private int age=24;
	private int years=7;
	public String getName()
	{
		return name;
	}
	public void setName(String name)
	{
		this.name = name;
	}
	public int getAge()
	{
		return age;
	}
	public void setAge(int age)
	{
		this.age = age;
	}
	public int getYears()
	{
		return years;
	}
	public void setYears(int years)
	{
		this.years = years;
	}
	public String getLove()
	{
		return "i have liked "+name+"for"+years+"years";
	}

}


Step2 :引用javabean的类


<%@ page language="java" pageEncoding="UTF-8"  import="com.songxu.severlet.JavaBeanTest"%>

Step3:定义JavaBean对象

<jsp:useBean id="beanTest" class="com.songxu.severlet.JavaBeanTest"></jsp:useBean>

Step4 使用JavaBean对象


<jsp:getProperty property="age" name="beanTest"/><br>
    <jsp:getProperty property="years" name="beanTest"/><br>
    <jsp:setProperty property="age" name="beanTest" value="23"/>
     <jsp:getProperty property="age" name="beanTest"/><br>


4可以在<jsp:setProperty>中通过param参数为bean的属性动态赋值。

<jsp:setProperty property="age" name="beanTest" param="hi"/>

对应的Servlet代码是:


org.apache.jasper.runtime.JspRuntimeLibrary.introspecthelper(_jspx_page_context.findAttribute("beanTest"), "age", request.getParameter("hi"), request, "hi", false);

5scope属性决定了JavaBean对象存在的范围。scope的可选值包括:
–page(默认值)

客户请求访问的当前JSP网页通过<forward>标记将请求转发到另一个文件
客户请求访问的当前JSP页面执行完毕并向客户端发回响应。

–request

客户请求访问的当前JSP网页
和当前JSP网页共享同一个客户请求的网页,即当前JSP网页中<%@ include>指令以及<forward>标记包含的其他JSP文件
当所有共享同一个客户请求的JSP页面执行完毕并向客户端发回响应时,JavaBean对象结束生命周期。


JavaBean对象作为属性保存在HttpRequest对象中,属性名为JavaBean的id,属性值为JavaBean对象,因此也可以通过HttpRequest.getAttribute()方法取得JavaBean对象,例如

CounterBean obj=(CounterBean)request.getAttribute(“myBean”);

–session

JavaBean对象被创建后,它存在于整个Session的生存周期内,同一个Session中的JSP文件共享这个JavaBean对象。

以通过HttpSession.getAttribute()方法取得JavaBean对象

CounterBean obj=(CounterBean)session.getAttribute(“myBean”);

–application


JavaBean对象被创建后,它存在于整个Web应用的生命周期内,Web应用中的所有JSP文件都能共享同一个JavaBean对象。

可以通过application.getAttribute()方法取得JavaBean对象,例如:

CounterBean obj=
(CounterBean)application.getAttribute("myBean");













© 著作权归作者所有

恋佳
粉丝 0
博文 76
码字总数 62107
作品 0
大连
私信 提问
代码生成器----xml自解析生成StringBuffer

最近遇到一个项目,要通过接口对外传输数据,采用xml格式传送,一看文档40多个接口啊,瞬间感觉生活没希望了。如果要一点点拼接成字符串,是非常耗时的,当然,肯定也很烦躁。如果通过XStre...

晓叹星沉
2016/08/05
44
0
深度吐槽hibernate

hibernate我很久都没有用了,最后一次用应该是3年前的一个企业项目,决定采用hibernate的并不是我,是我领导,我只是开发者。我所受的罪领导并不知道。正如我的每个hibernate项目那样,每次我...

闲大赋
2015/12/23
4.9K
56
JavaBean在JSP中的应用(3个JSP标签)

一、在JSP中如何使用JavaBean 为了能在JSP页面中集成JavaBean组件和支持JavaBean的功能,JSP规范专门定义了三个JSP标签:jsp:useBean、jsp:setProperty和jsp:getProperty,它们分别用于创建和...

KYZGJ
2014/04/26
0
0
Java Bean

JavaBean是一个遵循特定写法的Java类,它通常具有如下特点: 1、这个Java类必须具有一个无参的构造函数 2、属性必须私有化。 3、私有化的属性必须通过public类型的方法暴露给其它程序,并且方...

晨曦之光
2012/05/16
104
0
MyBatis初探三

一、输入类型( parameterType ) 简单类型( 基本数据类型 ) HashMap 单个JavaBean( 自定义JavaBean类型 ) 传入JavaBean的包装类型( 用处:比如说用户的复杂查询( 关联查询 ),需要传入用户信息...

AAASSSSddd
2016/04/03
29
0

没有更多内容

加载失败,请刷新页面

加载更多

我最喜欢的Mybatis 3.5新特性——Optional支持

Mybatis 3.5 发布有段时间了,终于支持了 Optional ,这么实用的特性,竟然还没人安利……于是本文出现了。 文章比较简单,但非常实用,因为能大量简化恶心的判空代码。 WARNING 由于本文非常...

周立_ITMuch
18分钟前
5
0
Android 开发工具推荐

简评: 自己过去在 Android 开发中发现的好工具,在这里分享给大家。: ) Library methods count 每一个 Android App 的开发中都会用到很多的库,这个工具能够让你看到不同库的大小和,帮助你...

极光推送
18分钟前
0
0
高并发解决方案

我们通常衡量一个Web系统的吞吐率的指标是QPS(Query Per Second,每秒处理请求数),解决每秒数万次的高并发场景,这个指标非常关键。举个例子,我们假设处理一个业务请求平均响应时间为100...

孤狼悲月
24分钟前
1
0
Kubernetes 中的渐进式交付:蓝绿部署和金丝雀部署

本文首发于:Jenkins 中文社区 渐进式交付是持续交付的下一步, 它将新版本部署到用户的一个子集,并在将其滚动到全部用户之前对其正确性和性能进行评估, 如果不匹配某些关键指标,则进行回...

Jenkins中文社区
29分钟前
4
0
大数据辟谣:布洛芬用药不慎可能致死?如此标题党居心何在

相信很多人看到一则“布洛芬用药不慎可能致死”的消息后,内心开始慌乱了。 (新闻来源:微博热搜排行榜) 毕竟健康是每一个人最关注的话题,而布洛芬也是很多人止痛(发烧头痛、喉咙痛、牙痛...

forespider
33分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部