JSP中使用JavaBean:创建和使用JavaBean对象
的时候避免使用Java代码。
JSP可以使用Java代码,建议尽量不要使用Java代码。
JavaBean---提供属性,构造器,
set,get方法,实现序列化
User user=new User();
user.setName("zhangsan");
user.setAge(20);
out.println(user.getName());
Person.java,Address.java javaBean.jsp
1、jsp中获得或者创建JavaBean对象
(1) 语法
<jsp:useBean id="对象引用" class="包名+类名"
scope="page|request|session|application"/>
例如: <jsp:useBean id="user"
class="com.briup.javabean.User"
scope="request"/>
id: User的对象引用
class: 包+类名
scope: scope默认为page
User对象的存放范围
作为该对象放置到scope中的属性名
scope.setAttribute("user",user);
2) 执行流程
a) User user =
(User)request.getAttribute("user");
b) if(user == null){
user = new User();
request.setAttribute("user",user);
}
c)若user!=null,可以使用该对象,
在页面上输出其属性值。
优点: 简化jsp代码,
且JavaBean对象永远不会为null。
2、设置JavaBean对象中的属性值
(1) 方式一
语法: <jsp:setProperty name="对象引用"
property="propertyName" value="">
例如: <jsp:setProperty name="user"
property="name" value="jack"/>
执行流程: user.setName("jack");
(2) 方式二
语法: <jsp:setProperty name="对象引用"
property="propertyName"/>
例如: <jsp:setProperty name="user"
property="name"/>
name: 它的值和标签useBean中id的值对应,
表示User对象的引用。
property: 它的值和setName()有关。
执行流程:
a) String value =
request.getParameter("name");
b) 若value != null, user.setName(value);
c) 若value == null,不调用setName()。
用途: 将表单中提交的字段信息封装到
JavaBean对象的属性中。
(3) 方式三
语法: <jsp:setProperty name="对象引用"
property="propertyName"
param=""> param="paramName"/>
例如: <jsp:setProperty name="user"
property="name"
param="username"/>
执行流程:
a) String value =
request.getParameter("username");
b) 若value != null, user.setName(value);
c) 若value == null, 不调用user.setName();
(4) 方式四
语法: <jsp:setProperty name="对象引用"
property="propertyName"
value="<%=\"zhangsan\" %>">
或者value='<%="中国" %>'
例如: <jsp:setProperty name="user"
property="age" value="<%=30%>"/>
执行流程: user.setAge(30);
(5) 方式五
语法: <jsp:setProperty name="对象引用"
property="*"/>
例如: <jsp:setProperty name="user"
property="*"/>
"*"匹配了id name password age gender address
(根据User中所有set方法的property进行匹配)
(6) 方式六
语法: <jsp:setProperty name="对象引用"
property="name" value="${}"/>
例如: <jsp:setProperty name="user"
property="address"
value="${address}"/>
使用el表达式来获取address的值,从四大范围中
查找address对象,如果找到调用user.setAddress(address);
3、输出JavaBean对象中的属性值
语法: <jsp:getProperty name="对象引用"
property="propertyName"/>
例如: <jsp:getProperty name="user"
property="name"/>
执行流程:
1) Object o = user.getName();
2) 将o一律转换成字符串s;
3) out.print(s);
4、使用标签<jsp:useBean>的四种方式
1) <jsp:useBean id="对象引用"
class="包名+类名"
scope=""> scope="page|request|session|application"/>
特点: 通过new来创建一个对象
2) <jsp:useBean id="对象引用"
type="JavaBean实现的接口或继承的父类"
scope="page|request|session|application"/>
特点: 如果scope中所引用的对象不存在,
不会去自动构造一个对象
例如: List list = new ArrayList();
session.setAttribute("list",list);
<jsp:useBean id="list"
type="java.util.List" scope="session"/>或者
<jsp:useBean id="list"
class="java.util.ArrayList"
scope="session"/>
3) <jsp:useBean id="对象引用"
class="包名+类名"
type="JavaBean实现的接口或继承的父类"
scope="page|request|session|application"/>
特点: 通过new来创建一个对象
4) <jsp:useBean id="对象引用"
beanName="包名+类名" >
type="JavaBean实现的接口或继承的父类"
scope="page|request|session|application"/>
特点: 通过反射构造一个对象
的时候避免使用Java代码。
JSP可以使用Java代码,建议尽量不要使用Java代码。
JavaBean---提供属性,构造器,
set,get方法,实现序列化
User user=new User();
user.setName("zhangsan");
user.setAge(20);
out.println(user.getName());
Person.java,Address.java javaBean.jsp
1、jsp中获得或者创建JavaBean对象
(1) 语法
<jsp:useBean id="对象引用" class="包名+类名"
scope="page|request|session|application"/>
例如: <jsp:useBean id="user"
class="com.briup.javabean.User"
scope="request"/>
id: User的对象引用
class: 包+类名
scope: scope默认为page
User对象的存放范围
作为该对象放置到scope中的属性名
scope.setAttribute("user",user);
2) 执行流程
a) User user =
(User)request.getAttribute("user");
b) if(user == null){
user = new User();
request.setAttribute("user",user);
}
c)若user!=null,可以使用该对象,
在页面上输出其属性值。
优点: 简化jsp代码,
且JavaBean对象永远不会为null。
2、设置JavaBean对象中的属性值
(1) 方式一
语法: <jsp:setProperty name="对象引用"
property="propertyName" value="">
例如: <jsp:setProperty name="user"
property="name" value="jack"/>
执行流程: user.setName("jack");
(2) 方式二
语法: <jsp:setProperty name="对象引用"
property="propertyName"/>
例如: <jsp:setProperty name="user"
property="name"/>
name: 它的值和标签useBean中id的值对应,
表示User对象的引用。
property: 它的值和setName()有关。
执行流程:
a) String value =
request.getParameter("name");
b) 若value != null, user.setName(value);
c) 若value == null,不调用setName()。
用途: 将表单中提交的字段信息封装到
JavaBean对象的属性中。
(3) 方式三
语法: <jsp:setProperty name="对象引用"
property="propertyName"
param=""> param="paramName"/>
例如: <jsp:setProperty name="user"
property="name"
param="username"/>
执行流程:
a) String value =
request.getParameter("username");
b) 若value != null, user.setName(value);
c) 若value == null, 不调用user.setName();
(4) 方式四
语法: <jsp:setProperty name="对象引用"
property="propertyName"
value="<%=\"zhangsan\" %>">
或者value='<%="中国" %>'
例如: <jsp:setProperty name="user"
property="age" value="<%=30%>"/>
执行流程: user.setAge(30);
(5) 方式五
语法: <jsp:setProperty name="对象引用"
property="*"/>
例如: <jsp:setProperty name="user"
property="*"/>
"*"匹配了id name password age gender address
(根据User中所有set方法的property进行匹配)
(6) 方式六
语法: <jsp:setProperty name="对象引用"
property="name" value="${}"/>
例如: <jsp:setProperty name="user"
property="address"
value="${address}"/>
使用el表达式来获取address的值,从四大范围中
查找address对象,如果找到调用user.setAddress(address);
3、输出JavaBean对象中的属性值
语法: <jsp:getProperty name="对象引用"
property="propertyName"/>
例如: <jsp:getProperty name="user"
property="name"/>
执行流程:
1) Object o = user.getName();
2) 将o一律转换成字符串s;
3) out.print(s);
4、使用标签<jsp:useBean>的四种方式
1) <jsp:useBean id="对象引用"
class="包名+类名"
scope=""> scope="page|request|session|application"/>
特点: 通过new来创建一个对象
2) <jsp:useBean id="对象引用"
type="JavaBean实现的接口或继承的父类"
scope="page|request|session|application"/>
特点: 如果scope中所引用的对象不存在,
不会去自动构造一个对象
例如: List list = new ArrayList();
session.setAttribute("list",list);
<jsp:useBean id="list"
type="java.util.List" scope="session"/>或者
<jsp:useBean id="list"
class="java.util.ArrayList"
scope="session"/>
3) <jsp:useBean id="对象引用"
class="包名+类名"
type="JavaBean实现的接口或继承的父类"
scope="page|request|session|application"/>
特点: 通过new来创建一个对象
4) <jsp:useBean id="对象引用"
beanName="包名+类名" >
type="JavaBean实现的接口或继承的父类"
scope="page|request|session|application"/>
特点: 通过反射构造一个对象