大家好,又见面了,我是你们的朋友全栈君。
-
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程序员的习惯,直接对类和实例进行操作,而不是直接去操作数据库。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/160631.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...