可重用组件
什么是软件组件
● 可重用的执行高级任务的程序部件,它是有用的、低级别API的集合
● JSP主要组件
▪ JavaBean
▪ Enterprise JavaBean (EJB)
比如:
学习JDBC时,经常使用Connection对象、Statement对象、ResultSet对象,他们都是基本的API,我们把这些常用的API封装到一个DAO中,从而达到可以重复使用的目的。也就是把低级别的API集合组成可重用的组件。
JSP中的可重用组件----------------------JavaBean
什么是JavaBean
● 可以很容易地重用并组合到应用程序中的Java类
● 遵循一定的设计原则的任何Java类都可以是JavaBean组件
▪ 可序列化
▪ 无参数的构造方法
▪ 类的私有属性
▪ 通过公有方法来获取和设置属性
▪ 通过事件与其他类通信
● JavaBean可以包含业务逻辑和数据访问逻辑
● 在JSP页面中,您可以创建和初始化bean并获取和设置其属性值
JavaBean的设计原则
● JavaBean的属性内部维护
● 属性可以
▪ 读/写, 只读, 或只写
▪ 简单或有索引的
● 属性应通过getXXX和setXXX方法访问和设置
▪ 属性: String name;
▪ Get方法:String getName(){…}
▪ Set方法: void setName(String name){…}
● JavaBean的必须有一个无参数的构造方法
public class BookBean implements java.io.Serializable {
private String name;
private float price;
private boolean recommend;
public BookBean() {
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public float getPrice() {
return price;
}
public void setPrice(float price) {
this.price = price;
}
public boolean jsp页面输出的三种方式isRecommend() {
return recommend;
}
public void setRecommend(boolean recommend) {
end = recommend;
}
}
JSP动作
● JSP页面使用脚本或JSP动作访问JavaBean
1、 在声明或scriplet中,JSP页面可以创建和使用任何类型的Java编程语言对象,如下面所示:
<%
BookBean book = (Attribute("bookbean");
if(book == null){
book = new BookBean();
session.setAttribute("bookbean", book);
}
%>
2、 JSP页面可使用JSP动作来创建和访问符合JavaBean规范的对象:
<jsp:useBean id="bookbean" class="bean.BookBean" scope="session" />
▪ 如果在会话范围内实例存在,则在当前页面可以使用该实例
▪ 如果在会话范围内实例不存在,则创建该实例并存储到会话中,当前页面可以使用该实例
▪ 在会话范围内该实例都可用
比较两种做法:
访问JavaBean的三个JSP动作
● 创建一个JavaBean
▪ jsp:useBean动作
● 设置JavaBean属性
▪ jsp:setProperty动作
● 获取JavaBean属性
▪ jsp:getProperty动作
创建一个Javabean
● 使用jsp:useBean动作
● 声明在指定的范围中创建或获取一个已被存储的bean
● 语法
<jsp:useBean id=“beanName” class=“fully_qualified_className”
type=“fully_quailifed_className” beanName=“beanName”
scope=“page|request|session|application”/>
<jsp:useBean id=“beanName” class=“fully_qualified_className”
type=“fully_quailifed_className”
beanName=“beanName” scope=“page|request|session|application”>
<jsp:setProperty …/>
</jsp:useBean>
useBean示例:
useBeanA.jsp
<jsp:useBean id="bookbean" class="bean.BookBean" scope="session" />
<%
<%
bookbean.setName("jsp程序设计");
bookbean.setPrice(50);
bookbean.setRecommend(true);
%>
bookbean.setPrice(50);
bookbean.setRecommend(true);
%>
useBeanB.jsp
<jsp:useBean id=“bookbean” class=“bean.BookBean” scope=“session” />
书名:<%=Name() %><br>
价格:<%=Price() %>元<br>
<% if(bookbean.isRecommend()){ %>
推荐!
<% } %><br>
书名:<%=Name() %><br>
价格:<%=Price() %>元<br>
<% if(bookbean.isRecommend()){ %>
推荐!
<% } %><br>
设置JavaBean属性
● 设置一个bean属性有2种方式
1、通过scriplet
示例
<%bookbean.Parameter(“name”));%>
2、通过jsp:setProperty
示例
<jsp:setProperty name=“bookbean” property=“name” param=“name”/>
“bookbean”必须和useBean元素的id属性指定的相同
jsp:setProperty语法取决于其属性来源
1.通过value来设置
<jsp:setProperty name=“beanName” property=“propName” value=“string constant”/>
<jsp:setProperty name=“beanName” property=“propName” value=“<%=expression%>”/>
2.通过param来设置
<jsp:setProperty name=“beanName” property=“propName” param=“paramName”/>
3.缺省
<jsp:setProperty name=“beanName” property=“propName”/>
<jsp:setProperty name=“beanName” property=“*”/>
三种属性来源的区别:
1、 value:直接赋值。
value.jsp
<body>
<jsp:useBean id="bookbean" class="bean.BookBean" scope="session" />
<jsp:setProperty name="bookbean" property="name" value="JSP程序设计" />
<jsp:setProperty name="bookbean" property="price" value="55.5" />
<jsp:setProperty name="bookbean" property="recommend" value="true" />
书名:<%=Name() %><br>
价格:<%=Price() %>元<br>
<%if(bookbean.isRecommend()){%>
推荐!
<% }%><br>
</body>
2、param:使用请求参数赋值。
paramform.jsp
<body>
<form action="param.jsp" method="post">
书名:<input type="text" name="name" value=""><br>
价格:<input type="text" name="price" value="">元<br>
推荐:<select name="recommend“>
<option value="true">是</option>
<option value="false">否</option>
</select><br>
<input type="submit" value="提交">
</form>
</body>
param.jsp
<body>
<%request.setCharacterEncoding("utf-8");%>
<jsp:useBean id="bookbean" class="bean.BookBean" scope="session" />
<%--当使用property="*"的时候这两行可省略
<jsp:setProperty name="bookbean" property="name" param="name"/>
<jsp:setProperty name="bookbean" property="price" />
--%>
<jsp:setProperty name="bookbean" property="*" />
书名:<%=Name() %><br>
价格:<%=Price() %>元<br>
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论