可重用组件
什么是软件组件
可重用的执行高级任务的程序部件,它是有用的、低级别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的属性内部维护
属性可以
/, 只读, 或只写
简单或有索引的
属性应通过getXXXsetXXX方法访问和设置
属性: 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);
%>
useBeanB.jsp
<jsp:useBean id=“bookbean” class=“bean.BookBean”    scope=“session” />
书名:<%=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>
2param:使用请求参数赋值。
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小时内删除。