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.可以便捷地传递数据
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程序员的习惯,直接对类和实例进行操作,而不是直接去操作数据库。