JSP 之useBean动作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Sun_Ru/article/details/53041137

useBean动作:

查找或实例化一个JSP页面使用的是javaBean组件

javaBean是特殊类型的java类,与普通java类相比主要区别是包含了两种特殊的方法:

setXXX()设置属性

getXXX()获取属性

在程序中可以把逻辑控制,数据库的操作放在javaBean组件中,然后在JSP文件中调用它,本质为封装作用。

JSP语法:

<JSP:usebean id=”name” scope=”page|request|session|application” typespec/>

第一次实例化Bean时才执行body部分,如果是利用已有的Bean实例则不执行body

获得的Bean实例后,修改属性可以通过jspsetProperty动作进行,也可以在脚本中改变,调用该对象的方法显示地修改其属性。

若一个Bean有一个类型为X的属性的foo时,意味着这个类有一个返回值类型为Xgetfoo方法,还有一个setfoo方法以 X类型的值为参数。

Jsp:setPropertyjsp:getProperty修改和提取Bean的属性。

Id用来引用Bean实例的变量。如果能够找到idscope相同的Bean实例,jsp:useBean动作将使用已有的Bean实例,而不是创建新的实例。

Class指定Bean的完整包名,表名Bean具体是哪一个类的实例化。本质相当于构造函数。

Scope指定Bean的有效范围,有四个取值:

Page

Request

Session

Application

默认值是page,表示该Bean旨在当前页面可用,(保存在当前页面的pageContext内),有效范围是当前页面。根据需要进行设定。

Request表示该Bean在当前客户请求内有效(保存在ServletRequest内置对象内)。有效范围在一个单独客户请求的生命周期内。这个需要注意。

Session表示该Bean对当前HttpSession内的所有页面都有效,有效范围是整个用户会话的生命周期内。

Application表示该Bean对所有具有相同的ServletContext的页面都有效。有效范围是应用的生命周期内。

Type指定引用该对象的变量的类型,是Bean类的名字、超类的名字、该类所实现的接口名字之一。记住变量的名字是由id属性指定的。

beanName指定Bean的名字,提供了type属性和beanName属性,可以省略class属性。

package One;

public class A {
	int x;
	int y;
	int z;
	public A(){
		
	}
	public int getX() {
		return x;
	}
	public void setX(int x) {
		this.x = x;
	}
	public int getY() {
		return y;
	}
	public void setY(int y) {
		this.y = y;
	}
	public int getZ() {
		return z;
	}
	public void setZ(int z) {
		this.z = z;
	}
	
}



<body>
	<jsp:useBean id="a1" class="One.A" scope="page"></jsp:useBean>
	<jsp:useBean id="a2" class="One.A" scope="request"></jsp:useBean>
	<jsp:useBean id="a3" class="One.A" scope="session"></jsp:useBean>
	<jsp:useBean id="a4" class="One.A" scope="application"></jsp:useBean>
	
	<jsp:useBean id="time" class="java.util.Date"></jsp:useBean>
	
	<%
		a1.setX(1);a1.setY(2);a1.setZ(3);
		a2.setX(11);a2.setY(22);a2.setZ(33);
		a3.setX(111);a3.setY(222);a3.setZ(333);
		a4.setX(1111);a4.setY(2222);a4.setZ(3333);
		
		out.println(a1.getX()+":"+a1.getY()+":"+a1.getZ());
		out.println("<br>");
		out.println(a2.getX()+":"+a2.getY()+":"+a2.getZ());
		out.println("<br>");
		out.println(a3.getX()+":"+a3.getY()+":"+a3.getZ());
		out.println("<br>");
		out.println(a4.getX()+":"+a4.getY()+":"+a4.getZ());
		
		out.println("<br>");
		out.println(time.toGMTString());
	%>
	
</body>


猜你喜欢

转载自blog.csdn.net/Sun_Ru/article/details/53041137
今日推荐