JavaBean简介

JavaBean简介

一、什么是JavaBean

JavaBean是用Java语言描述的软件组件模型,类似于Microsoft中的COM组件的概念。

对于编程人员来说,使用JavaBean可以实现代码的重复利用,因此极大简化了程序的设计过程。在JSP中JavaBean分为两种:可视化的JavaBean和非可视化的JavaBean。

    随着JSP的产生和发展,JavaBean也从传统的可视化领域中的应用更多地应用到非可视化领域,且在服务器端的应用中表现出了非常明显的优势。非可视化JavaBean指的是没有GUI界面的JavaBean,在实际开发中常用来封装业务逻辑和进行数据库的相关操作,如连接数据库、数据处理等。使用非可视化的JavaBean更好地实现了业务逻辑表现层之间的分离,降低了它们之间的耦合度。

    在JSP中只使用非可视化的JavaBean。

 

二、定义JavaBean

JavaBean是一种特殊的Java类:

1、JavaBean是一个public类,即JavaBean的类访问权限必须是public

2、JavaBean应该包含一个无参的构造方法

3、JavaBean中属性的获取和设置需要使用标准格式定义的getXxx()方法和setXxx()方法。对于boolean类型成员变量,可以使用isXxx()方法。

package javabean;
public class MyJavaBean {
     private String name;
     private String school;
     public MyJavaBean(){}      //不写也行,编译器会自动给你创建一个
     public String getName() {
         return name;
     }
     public void setName(Stringname) {
         this.name = name;
     }
     public String getSchool() {
         return school;
     }
     public void setSchool(Stringschool) {
         this.school = school;
     }
}
 

三、设置JavaBean的属性

在JSP中可以调用JavaBean,JSP中提供了3个标准的动作指令:<jsp:useBean>、<jsp:setProperty>和<jsp:getProperty>。

<jsp:setProperty>是用来设置和修改Bean中的属性值。

1<jsp:setPropertyname="myBean"property="*" />

    property="*" 表示从request对象中将所有与JavaBean属性名字相同的请求参数传递给相应的setter方法。myBean是JavaBean实例名。

2<jsp:setPropertyname="myBean"property="id" />

    该形式表示将request对象中的一个参数值来设置JavaBean实例中的一个属性值。id为Bean中的属性名,该属性名应该与request请求参数的名字保持相同。

3<jsp:setPropertyname="myBean"property="id" param="str"/>

    该形式表示将request对象中的参数str传入到JavaBean实例myBean的属性id中。其中param指定使用哪个请求参数来作为Bean属性的值。要说明的是,此时param指定的Bean属性和request参数的名字可以不相同。

4<jsp:setPropertyname="myBean"property="id" value="Baolibin"/>

    该形式表示想JavaBean实例myBean的属性id中传入指定的值。其中value用来指定传入Bean中属性的值。

注意:param属性表示页面请求中的参数的名称,value属性则表示赋给Bean属性property的具体值。在<jsp:setProperty>中不能同时使用param属性和value属性

四、JavaBean存在范围

JSP中有四种属性范围,分别是page、request、session、application。

在JavaBean中也可以设置其存在范围,它的意义与属性的存储范围相同。

五、JavaBean例子

例一:实现一个简单的计数功能,每次请求都是计数器增1。

Counter.java

package javabean;
public class Counter {
     intcount=0;   //记录请求次数
     publicCounter(){}   //无参构造方法
     publicint getCount() {
         count++;
         returncount;
     }
     publicvoid setCount(int count) {
         this.count= count;
     }
}

counter.jsp

<%@ page language="java"contentType="text/html; charset=gb2312" %>
<html>
<head>
    <title>counter 技术JSP页面</title>
</head>
<body>
<jsp:useBean id="countbean"scope="application" class="javabean.Counter" />
<jsp:getProperty name="countbean"property="count" />
</body>
</html>



例二:使用JavaBean来实现用户登陆功能。

User.java

package javabean;
public class User{
    private String username;
    private String password;
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
}

login.jsp

<%@ page language="java"contentType="text/html; charset=gb2312" %>
<html>
<head>
    <title>counter 技术JSP页面</title>
</head>
<body>
    <form action="javabeandemo.jsp" method="post">
        用户名:
        <input type="text" name="username">
        <br><br>
        密  码:
        <input type="password" name="password">
        <br><br>
        <input type="submit" value="提交">
    </form>
</body>
</html>


javabeandemo.jsp

<%@ page language="java"contentType="text/html; charset=gb2312" %>
<html>
<head>
    <title>counter 技术JSP页面</title>
</head>
<body>
    <%
        request.setCharacterEncoding("gb2312");
     %>
    <jsp:useBean id="userbean" scope="page"class="javabean.User"/>
    <jsp:setProperty name="userbean" property="username"param="username" />
    <jsp:setProperty name="userbean" property="password"param="password" />
    用户名:
    <jsp:getProperty name="userbean" property="username"/>
    <br><br>
    密  码:
    <jsp:getProperty name="userbean" property="password"/>
    <br><br>
    <!--
        也可以这样输出
        <%
            out.println("用户名为:"+userbean.getUsername()+"<br>");
        %>
     -->
</body>
</html>


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值