JavaBean的作用

javaBean

  编辑
JavaBean 是一种JAVA语言写成的可重用组件。为写成JavaBean,类必须是具体的和公共的,并且具有无参数的构造器。JavaBean 通过提供符合一致性设计模式的公共方法将内部域暴露成员属性,long和class方法获取。众所周知,属性名称符合这种模式,其他Java 类可以通过自省机制发现和操作这些JavaBean 的属性。
javaBean在MVC设计模型中是model,又称模型层,在一般的程序中,我们称它为数据层,就是用来设置数据的属性和一些行为,然后我会提供获取属性和设置属性的get/set方法
 
  
MVC的概念,即M-model-模型:JavaBean;V-view-表现:JSP页面;C-control-控制和处理:Servlet。
jsp中使用javabean的好处如下:
1.提高代码的可复用性:对于通用的事务处理逻辑,数据库操作等都可以封装在JavaBean中,通过调用JavaBean的属性和方法可快速进行程序设计。
	2.程序易于开发维护:实现逻辑的封装,使事务处理和显示互不干扰。
	3.支持分布式运用:多用JavaBean,尽量减少java代码和html的混编。
	4.可以便捷地传递数据
 
  
 
  
下面以一个例子来说明JavaBean的创建一级要遵循的规范:1、javabean类必须是public类 2、提供给JSP页面的调用方法必须富裕public访问权限 3、bean中属性必须给get和set方法 4、必须由空构造方法
 
  
package Server;

import java.io.Serializable;
public class Product implements Serializable
{
	private static final long serialVersionUID = 1L;
	private String product_id;
	private String product_name;
	private double price;
	private String info;
	
	public Product()
	{
		super();
	}

	public void setPrice(double price) {
		this.price = price;
	}

	public double getPrice() {
		return price;
	}

	public void setInfo(String info) {
		this.info = info;
	}
	public String getInfo() {
		return info;
	}


	public void setProduct_id(String product_id) {
		this.product_id = product_id;
	}


	public String getProduct_id() {
		return product_id;
	}


	public void setProduct_name(String product_name) {
		this.product_name = product_name;
	}

	public String getProduct_name() {
		return product_name;
	}
	
}


 
  

在页面中要导入相应的Bean类,并用<jsp:usebean>标签获取Bean对象
<jsp:useBean id="自定义该Bean名字" class="Bean类位置" scope="Bean有效范围"/>
Bean有效范围:page、request、session、application
设置Bean属性<jsp:setProperty>,获取Bean属性<jsp:getProperty>
<jsp:setProperty name="Bean的id" property="Bean类属性名" param="表单参数名"/>
<jsp:getProperty property="Bean类属性名" name="Bean的id"/>

 
  
使用例子:
<%@ page language="java" contentType="text/html; charset=utf-8"
    pageEncoding="utf-8"%>
<%@ page import="java.util.*" %>
<%request.setCharacterEncoding("utf-8"); %>
<jsp:useBean id="product" class="Server.Product" scope="page" />
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>通过表单参数设置Bean属性值</title>
</head>
<body>
<form action="" method="post">
<br>
输入产品名称:<input type="text" name="product_name"/><br>
输入产品编号:<input type="text" name="product_id"/><br>
输入产品价格:<input type="text" name="price"><br>
输入产品信息:<input type="text" name="info"><br>
<input type="submit" value="提交">
</form>
<!-- 设置product名称 -->
<jsp:setProperty property="product_name" name="product" value="struts开发教程"/>
<br>产品名称是:
<!-- 获取产品名称 -->
<jsp:getProperty property="product_name" name="product"/>
<%=product.getProduct_name() %>



<!-- 设置产品编号 -->
<jsp:setProperty property="product_id" name="product" value="111100123689"/>
<br>产品编号是:
<!-- 获取产品编号 -->
<jsp:getProperty property="product_id" name="product"/>
<%=product.getProduct_id() %>


<!-- 设置产品价格 -->
<%
double price=68.23;
%>
<jsp:setProperty property="price" name="product" value="<%=price +23.67%>"/>
<br>产品价格是:
<!-- 获取产品价格 -->
<jsp:getProperty property="price" name="product"/>



<!-- 设置产品信息 -->
<jsp:setProperty property="info" name="product" value="Structs开发教程是一本介绍秿Struct的专业书籍...."/>
<br>产品信息:
<!-- 获取产品信息 -->
<jsp:getProperty property="info" name="product"/>
</body>
</html>
 其实所有的程序都可以写在jsp页面里,但是存在以下问题:
1、执行效率低下;
2、不安全,所有的程序都在jsp文件中可见,毫无知识保护可言;
3、逻辑混乱。这样让JSP文件的逻辑很难懂。
    于是提出了MVC模式,即将一些处理用的程序从JSP中分离出来,让JSP页面只负责显示,几乎是html,只不过可以动态的读取数据和进行少量的逻辑处理,比如循环、判断等。
    可能不举例说你还是不懂,我就举个最简单的例子——留言板。
    JSP的职责:从数据库取出数据,显示所有的留言信息(当中要用少量的,简单的逻辑处理:循环)、显示签写留言的页面(几乎全部都是html)。
    Servlet的职责:接受签写留言页面提交过来的标单数据,进行数据检验,如果正确,则存入数据库并返回留言的显示页面;如果数据有误,给出错误提示后返回签写留言的页面。可以看到,这个就叫做逻辑处理。这些你也完全可以放在JSP中实现,但是用Servlet,其效率和安全性高多了,也让JSP页面变得很简洁明了。
    JavaBean的职责:其实一般的留言板是不需要用到JavaBean的,但在这里,为了让你明白,还是牵强的把JavaBean用进来。所谓JavaBean,就是一个很简单的Java类,比如说,网上商城的所有商品是一个商品类,论坛中所有的帖子是一个帖子类,这里,留言板的所有留言是一个留言类,叫做Message类。每个类有着它特定的属性和方法。对于Message类,其属性有主题、内容、日期、留言者等,其方法可以有添加留言、删除留言、修改留言等。使用JavaBean,主要是为了让JSP编程能够适应Java程序员的习惯,直接对类和实例进行操作,而不是直接去操作数据库。


 
  


  • 21
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值