jsp与javabean(下)

1、javaBean就是一个用来封装数据的实体。
2、javaBean是一个遵循特定写法的Java类,它通常具有如下的特点
1、这个类必须具有一个无参的构造函数
2、属性必须私有化
3、私有化的属性必须通过public类型的方法暴露给其他程序,并且方法的命名也必须遵守一定的命名规范。
3、javaBean在J2EE开发中其起的作用:
JavaBean在J2EE开发中,通常用于封装数据,对于遵循以上写法的JavaBean组件,其他程序可以通过反射
技术实例化JavaBean对象,并且通过反射那鞋遵守命名规范的方法,从而获知JavaBean的属性
,进而调用其属性保存的数据。
4、javaBean的属性:
1、javaBean的属性可以是任意类型,并且一个JavaBean可以有多个属性。每个属性通常都需要具有相应的setter、getter
  方法,setter方法称为属性修改器,getter方法称为属性访问器。
2、属性修改器必须以小写的set前缀开始,后跟属性名,切属性名的第一个最要大写,
  例如:name属性的修改器名称为setName,password属性的修改器为setPassword。
3、属性访问器通常以小写的get前缀开始,后跟属性名,且属性名的第一个字母要大写。
  例如:name属性的访问器是getName,password属性的访问器是:getPassword。
4、一个javaBean的某个属性页可以只有set方法或者get方法,这样的属性通常称为只写、只读属性。
5、在JSP中使用JavaBean
1、JSP提供了三个关于JavaBean组建的动作元素,即JSP标签,它,恶魔分别为:
1.<jsp:useBean>标签:用于在JSP页面中查找或者实例化一个javaBean组件
2.<jsp:setProperty>标签:用于在JSP页面中设置一个JavaBean组件的属性。
3.<jsp:getProperty>标签:用于在JSP页面中获取一个JavaBean组件的属性。
6、<jsp:useBean>标签
<jsp:useBean>标签用于正在指定域范围内查找指定名称的JavaBean对象。
如果存在则直接返回该JavaBean对象的引用。
如果不存在则实例化一个新的javaBean对象并将它以指定的名称存储到指定的域范围中。
7、<jsp:useBean>标签常用语法
<jsp:useBean id="beanName" class="package.class" scope="page|request|session|application" />
id:属性用于指定javaBean实例对象的引用名称和其存储在域范围中的名称
class:属性用于指定javaBean的完整类名(即必须带有包名)
scope:属性用于指定javabean实例对象所存储的域范围,其取值只能是page、request
session和application等四个值中的一个,其默认值是page。
在jsp中操作bean,首先要建立bean,在javaweb工程中建立:src文件夹中建立,bean是用来封装数据的实体,
我们习惯性的把它放在domain的包里面。
8、带表前体的<jsp:useBean>标签
语法:
   <jsp:useBean ...>
Body
   </jsp:useBean>
功能:Body部分的内容只在<jsp:useBean>标签创建javaBean的实例对象时才执行。
9、<jsp:setProperty>标签(一般用在手工为bean属性赋值)
语法格式:
<jsp:setProperty name="BeanName"{
property="porpertyName" value="{string|<%=expression%>}" |
property="propertyName" [param="parameterName"] |
property="*"
} />
name:属性用于指定JavaBean对象的名称
property:属性用于指定JavaBean对象的属性名
value:用于指定javaBean对象的某个属性的值,value的值可以是字符串,也可以是表达式。为
字符串时,该值会自动转换为javaBean属性相应的类型,如果value的值时一个表达式,
那么该表达式的计算结果必须与索要设置的javaBean属性的类型一致。
param:属性用于将javaBean实例对象的某个属性值设置为一个请求参数值,该属性值同样会自动
转换成要设置的javaBean属性的类型。
一般用在手工为bean属性赋值:例如:
<jsp:setProperty name="person" property="name" value="xxxx"/>
将name的值赋值为xxxx
10、<jsp:getProperty>标签用于读取javaBean对象的属性,也就是调用javaBean的getter方法,然后将
1.读取的属性值转换成字符串后插入进输出的响应正文中。
2.语法:
<jsp:getProperty name="beanInstanceName" property="PropertyName" />
name:属性用于指定javaBean实例对象的名称,其值应与<jsp:useBean>标签的id属性相同
property:属性用于指定javaBean实例对象的属性名。

如果一个javaBean实例对象的某个属性的值为null,那么,使用<jsp:getProperty>标签输出该属性的结果将是一个内容为“null”的字符串。

Person.java

package cn.itcast.domain;
/*
 * 步骤:
 * 1.在src中建立bean,具体建立的是Person类
 * 2.写一个1.jsp页面,用来操作建立的bean。
 * 
 */
/*
 * 这个bean不仅仅只有name和age这两个属性,它还从Object类中继承了一个getClass方法,共有三个属性
 */
import java.util.Date;
public class Person {
	private String name="aaa";	//getClass();
	private int age=100;
	private Date birthday;
	public Date getBirthday() {
		return birthday;
	}
	public void setBirthday(Date birthday) {
		this.birthday = birthday;
	}
	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;
	}
	
}

2.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>jsp:setProperty标签</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->

  </head>
  
  <body>
  	<!-- 实例化出一个person对象,提供给下面使用 -->
    <jsp:useBean id="person" class="cn.itcast.domain.Person">
    </jsp:useBean>
    <!-- 手工为bean属性赋值 -->
    <jsp:setProperty name="person" property="name" value="xxxx"/>
    <%=person.getName() %><br />
    <%=person.getAge() %><br />
    <hr />
    <!-- 用请求参数给bean的属性赋值 -->
    <!-- http://localhost:8080/day09/2.jsp?name=dsfs -->
    <jsp:setProperty name="person" property="name" param="name"/>
    <!-- http://localhost:8080/day09/2.jsp?name=dsfs&age18 
    	上面的age是字符型的,传递的过程中自动转换成了int类型。
     -->
    <jsp:setProperty name="person" property="age" param="age"/>	<!-- 支持8中基本数据类型的转换(在这里将客户机提交的字符串age转换成了int类型的,并返回给Person类中age) -->
    <%=person.getName() %>
    <%=person.getAge() %>
    <!-- http://localhost:8080/day09/2.jsp?name=dsfs&age=18&birthday=1989-03-25 -->
    <%-- 
    <jsp:setProperty name="person" property="birthday" value="<%=new Date() %>"/><!-- 要给birthd赋值,在此处不能使用param,要使用value才能给birthday赋值 -->
    <%=person.getBirthday() %>
    <hr />
    --%>
    <!-- 用所有的请求参数为bean赋值 -->
    <!-- http://localhost:8080/day09/2.jsp?name=dsfs&age=18 -->
    <jsp:setProperty name="person" property="*"/>
    	<%=person.getName() %>
    	<%=person.getAge() %>
    <hr />
    <jsp:getProperty name="person" property="name"/>
    <jsp:getProperty name="person" property="age"/>
    <jsp:getProperty name="person" property="birthday"/>
  </body>
</html>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值