Java Bean 是可重用组件,优点:可重用 ;可在多个应用程序中使用 ;可以夸平台
JSP页面“零代码的实现”
1.JavaBean+Servlet+JSP 模式三
2.EL(Expression language)+JSTL(java标准标记库)
3.Structs tag
JavaBean 是满足了一定命名规范的特殊java类。
表示层:jsp,servlet,JSTL,EL,Structs
业务逻辑层:Java类 spring
数据层:java类,javabean, Hibernate
javabean:ORM 实体类关系映射
1:有默认构造方法(无参数的)
2:javaBean中的属性要定义读和写的方法(可选),读方法是getXXX,(XXX是属性名称,且首字母大写,写方法是setXXX....)
JSP标准动作:<JSP:useBean> 将javaBean潜入到jsp页面中 <JSP:setProperty>设置javabean的属性 <JSP:getProperty>获取javabean的属性
<JSP:forward> 将用户请求转发到其他页面 <JSP:inclulde> 将其他的内容嵌入到当前页面 <JSP:param>
实例代码:
beanTest.jsp:
<%--
网站: <a href="http://www.crazyit.org">疯狂Java联盟</a>
author yeeku.H.lee kongyeeku@163.com
version 1.0
Copyright (C), 2001-2012, yeeku.H.Lee
This program is protected by copyright laws.
Program Name:
Date:
--%>
<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> Java Bean测试 </title>
<meta name="website" content="http://www.crazyit.org" />
</head>
<body>
<!-- 创建lee.Person的实例,该实例的实例名为p1 -->
<jsp:useBean id="p1" class="lee.Person" scope="page"/>
<!-- 设置p1的name属性值 -->
<jsp:setProperty name="p1" property="name" value="wawa"/>
<!-- 设置p1的age属性值 -->
<jsp:setProperty name="p1" property="age" value="23"/>
<!-- 输出p1的name属性值 -->
<jsp:getProperty name="p1" property="name"/><br/>
<!-- 输出p1的age属性值 -->
<jsp:getProperty name="p1" property="age"/>
</body>
</html>
lee.Person:
package lee;
/**
* Description:
* <br/>网站: <a href="http://www.crazyit.org">疯狂Java联盟</a>
* <br/>Copyright (C), 2001-2012, Yeeku.H.Lee
* <br/>This program is protected by copyright laws.
* <br/>Program Name:
* <br/>Date:
* @author Yeeku.H.Lee kongyeeku@163.com
* @version 1.0
*/
public class Person
{
private String name;
private int age;
//无参数的构造器
public Person()
{
}
//初始化全部属性的构造器
public Person(String name , int age)
{
this.name = name;
this.age = age;
}
//name属性的setter和getter方法
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return this.name;
}
//age属性的setter和getter方法
public void setAge(int age)
{
this.age = age;
}
public int getAge()
{
return this.age;
}
}