JavaBean基础

4 篇文章 0 订阅

JavaBean的编写与使用

JavaBean的编写

  • Sun公司对于JavaBean的定义是:JavaBean是一个可重复使用的软件部件
  • JavaBean是描述Java的软件组件模型,是Java程序的一种组件结构,也是Java类的一种
  • JavaBean提供给外部操作接口,而实现过程无需外部调用知道
  • 应用JavaBean的主要目的是实现代码重用,便于维护和管理。在Java开发模型中,通过JavaBean可以无限扩充Java程序的功能,通过JavaBean的组合可以快速地生成新的应用程序
  • JavaBean传统的应用是在可视化领域,自从JSP诞生后,JavaBean更多的应用在了非可视化领域
  • 非可视化的JavaBean,也就是没有GUI的JavaBean,在JSP程序中常用来封装事物逻辑,数据库操作等,可以很好地实现业务逻辑和前台程序(如JSP文件)的分离,使系统具有更好的健壮性和灵活性
  • JavaBean实质上是一个Java类,但是有它独有的特点:
    • JavaBean是公共的类
    • 构造函数没有输入参数
    • 属性必须声明为private,方法必须声明为public
    • 用一组set方法设置内部属性
    • 用一组get方法获取内部属性
    • JavaBean是一个没有主方法的类(但可以编写main方法进行JavaBean功能的测试),一般的Java类默认继承Object类,而Bean不需要这种继承
  • BeanDemo1.java
    package javaBean;
    
    public class BeanDemo1 {
    	private String name = null;
    	private String pass = null;
    	
    	public BeanDemo1() {
    		
    	}
    	
    	public void setName(String value) {
    		this.name = value;
    	}
    	
    	public void setPass(String value) {
    		this.pass = value;
    	}
    	
    	public String getName() {
    		return name;
    	}
    	
    	public String getPass() {
    		return pass;
    	}
    }
    
    
  • 语法说明:
    • BeanDemo1.class是一个很典型的JavaBean,其中name和pass是该JavaBean的两个属性,外部可以通过get,set方法对这些属性进行操作

JavaBean的使用

  • 在改进的JSP开发模式中,采用的就是JavaBean+JSP的模式
  • JavaBean和JSP技术的结合不仅可以实现表现层和商业逻辑层的分离,还可以提高JSP程序的运行效率和代码重用的程度,并且可以实现并行开发,是JSP编程总常用的技术
  • JSP中提供了以下动作元素来实现对JavaBean的操作
    • < jsp:useBean>
    • < jsp:setProperty>
    • < jsp:getProperty>

1.< jsp:useBean>操作

  • < jsp:useBean>可以定义一个具有一定生存范围以及一个唯一id的JavaBean的实例,JSP页面通过指定id来识别JavaBean,也可以通过id.method语句来调用JavaBean中的方法
  • 在执行过程中,< jsp:useBean>首先会尝试寻找已经存在的具有相同id和scope值的JavaBean实例,如果没有就会自动创建一个新的实例
  • 基本语法:
    <jsp:useBean id="beanName" scope="page|request|session|application" >class="packageName.className"/>
    
  • < jsp:useBean>标签的基本属性
    属性名功能
    idjavaBean对象的唯一标识,代表了一个JavaBean对象的实例。它具有特定的存在范围(page
    scope代表了JavaBean对象的生存空间,可以是page,request,session,application中的一种,默认为page
    class代表了JavaBean对象的class名字,需要特别注意的是大小写要完全一致

2.< jsp:setProperty>操作

  • 基本语法:
    <jsp:setProperty name="beanName" last_syntax/>
    
  • < jsp:useBean>标签的基本属性
    属性名功能
    namejavaBean对象的唯一标识,代表了一个JavaBean对象的实例。它具有特定的存在范围(page
    property代表了JavaBean对象的生存空间,可以是page,request,session,application中的一种,默认为page
    param代表了JavaBean对象的class名字,需要特别注意的是大小写要完全一致
    value代表了赋给JavaBean的属性property的具体值
  • 语法说明:
    • 使用< jsp:setProperty>标签可以设置JavaBean的属性值
    • name属性代表了已经存在的并且具有一定生存范围(scope)的JavaBean实例
    • last_syntax代表的语法如下:
      • property="*"
      • property=“propertyName”
      • property=“propertyName” param=“parameterName”
      • property=“propertyName” value=“propertyValue”

3.< jsp:getProperty>操作

  • 基本语法:
    <jsp:getProperty name="beanName" property="propertyName"/>
    
  • < jsp:useBean>标签的基本属性
    属性名功能
    name代表了想要获得属性值的JavaBean的实例,JavaBean实例必须在前面用< jsp:useBean>定义
    property代表了想要获得值的那个property的名字
  • 语法说明:
    • 使用< jsp:getProperty>可以得到JavaBean实例的属性值,并将其转换为java.lang.String,最后放置在隐含的Out对象中
    • JavaBean实例必须在< jsp:getProperty>前面定义

1.JSP文件中调用javaBean

  • BeanDemo1.java
    package javaBean;
    
    public class BeanDemo1 {
    	private String name = null;
    	private String pass = null;
    	
    	public BeanDemo1() {
    		
    	}
    	
    	public void setName(String value) {
    		this.name = value;
    	}
    	
    	public void setPass(String value) {
    		this.pass = value;
    	}
    	
    	public String getName() {
    		return name;
    	}
    	
    	public String getPass() {
    		return pass;
    	}
    }
    
    
  • BeanDemo1.jsp
    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>第一个JavaBean实例</title>
    </head>
    <body>
    	<jsp:useBean id="first" class="javaBean.BeanDemo1"></jsp:useBean>
    	<%
    		first.setName("wangxiaoyang");
    		first.setPass("008");
    	%>
    
    	<h3>调用getProperty获得的值为:</h3>
    	用户名:
    	<jsp:getProperty name="first" property="name"/>
    	密码:
    	<jsp:getProperty name="first" property="pass" />
    	
    	<jsp:setProperty property="name" name="first" value="liusheng"/>
    	<jsp:setProperty property="pass" name="first" value="888"/>
    	<h3>应用setProperty后调用getProperty获得的值为:</h3>
    	用户名:<%=first.getName() %>
    	密码:<%=first.getPass() %>
    </body>
    </html>
    
    在这里插入图片描述

2.JavaBean与HTML表单的交互

  • Login.html
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>登录页面</title>
    <script type="text/javascript">
    	function check(){
    		if(Login.name.value==""){
    			alert("请输入用户名!");
    			Login.name.focus();
    			return false;
    		}
    		if(Login.pass.value==""){
    			alert("请输入密码!");
    			Login.pass.focus();
    			return false;
    		}
    	}
    </script>
    </head>
    <body>
    	<form action="LoginBean.jsp" name="Login" method="post" onsubmit="return check()">
    		<table border="1" align="center" bgcolor="#229988">
    			<tr><th colspan="2">用户登录</th></tr>
    			<tr bgcolor="#993344">
    				<td>用户名:</td>
    				<td><input type="text" name="name"></td>
    			</tr>
    			<tr>
    				<td bgcolor="#993344">密码:</td>
    				<td><input type="password" name="pass"></td>
    			</tr>
    			<tr>
    				<td>&nbsp;</td>
    				<td>
    					<input type="submit" name="submit" value="提交">&nbsp;
    					<input type="reset" name="reset" value="重置">
    				</td>
    			</tr>
    		</table>
    	</form>
    </body>
    </html>
    
  • LoginBean.jsp
    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>用户登录</title>
    </head>
    <body>
    	<jsp:useBean id="Login" class="javaBean.LoginBean"></jsp:useBean>
    	<jsp:setProperty property="*" name="Login"/>
    	<%
    		int Result = Login.check();
    		if(Result==1){
    	%>
    	<h3>欢迎<%=Login.getName()%>进入电子商城</h3>
    	<%
    		}
    		if(Result==0){
    	%>
    	<h3>登录失败!点击<a href="javascript:history.back(-1)">这里</a>重新登录!</h3>
    	<%
    		}
    	%>
    </body>
    </html>
    
  • LoginBean.java
    package javaBean;
    
    public class BeanDemo1 {
    	private String name = null;
    	private String pass = null;
    	
    	public BeanDemo1() {
    		
    	}
    	
    	public void setName(String value) {
    		this.name = value;
    	}
    	
    	public void setPass(String value) {
    		this.pass = value;
    	}
    	
    	public String getName() {
    		return name;
    	}
    	
    	public String getPass() {
    		return pass;
    	}
    
    	public int check() {
    		if(name.equals("liusheng")&&pass.equals("888")) {
    			return 1;
    		}else {
    			return 0;
    		}
    	}
    }
    
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值