JavaBean学习

javaBean是一种可重复使用的、跨平台的软件组件。可分为两种:有用户界面的;没有用户界面的,主要负责处理事务。 

JavaBean的特性:是public的类;有一个不带参数的构造方法;set和get方法。
如下

public class CounterBean
{
	private int count;

	public int getCount()
	{
		return count;
	}

	public void setCount(int count)
	{
		this.count = count;
	}
}

使用javaBean的步骤:导入javaBean;声明javaBean对象;访问javaBean属性。

导入javaBean: <%@ page import="mypackage.CounterBean" %>

声明JavaBean对象:<jsp:useBean id="myBean" class="myPackage.CounterBean" scope="request"/>
对应的Servlet Java代码

 myPackage.CounterBean myBean = null;
      synchronized (request) {
        myBean = (myPackage.CounterBean) _jspx_page_context.getAttribute("myBean", PageContext.REQUEST_SCOPE);
        if (myBean == null){
          myBean = new myPackage.CounterBean();
          _jspx_page_context.setAttribute("myBean", myBean, PageContext.REQUEST_SCOPE);
        }
      }

访问javaBean属性:<jsp:getProperty name="myBean" property="count"/>

org.apache.jasper.runtime.JspRuntimeLibrary.toString(((myPackage.CounterBean)_jspx_page_context.findAttribute("myBean")).getCount());

修改属性值:<jsp:setProperty name="myBean" property="count" value="100"/>

org.apache.jasper.runtime.JspRuntimeLibrary.introspecthelper(_jspx_page_context.findAttribute("myBean"), "count", "100", null, null, false);
<jsp:setProperty name="myBean" property="count" param="hello"/>中的hello是传过来的参数名。http://localhost:8080/test/bean.jsp?hello=23访问时,count=23。
 org.apache.jasper.runtime.JspRuntimeLibrary.introspecthelper(_jspx_page_context.findAttribute("myBean"), "count", request.getParameter("hello"), request, "hello", false);

由于上述的作用域为request,可以通过如下方式获得CounterBean

CounterBean cb = (CounterBean)request.getAttribute("myBean");
//若作用域为session
//CounterBean cb = (CounterBean)session.getAttribute("myBean");
//若作用域为application
//CounterBean cb = (CounterBean)application.getAttribute("myBean");

注:上面的_jspx_page_context是javax.servlet.jsp.PageContext类的对象。

JavaBean的存活范围(scope):page(默认)、request、session、application。
page:每次请求访问JSP页面都会创建一个JavaBean对象。JavaBean的有效范围是请求访问的当前JSP网页。结束生命周期的情况:请求访问的当前JSP网页通过<forward>标记将请求转发到另一个文件;请求访问的当前JSP页面执行完毕并返回响应。
request:每次请求访问JSP页面都会创建一个JavaBean对象。JavaJavaBean的有效范围是:请求访问的当前JSP网页;和当前JSP页面共享同一个客户请求的网页,即当前JSP网页中<%@ include>及<jsp:forward>中包含的其他JSP页面;当所有共享同一个请求的JSP页面执行完毕并返回响应时,JavaBean对象结束生命周期。
session:JavaBean对象创建后存在于整个Session生命周期内,同一个Session中的JSP文件共享这个JavaBean对象。
application:JavaBean对象创建后存在于整个Web应用生命周期内,同一个Web应用中的所有JSP文件共享这个JavaBean对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值