zoukankan      html  css  js  c++  java
  • 2017.10.26 JavaWeb----第五章 JavaBean技术

    JavaWeb----第五章 JavaBean技术

    (1)JavaBean技术
    JavaBean技术是javaweb程序的重要组成部分,是一个可重复使用的软件组件,是用Java语言编写的、遵循一定的标准类,,他封装了数据和业务逻辑,供JSP(或servlet,下一章介绍)调用,完成数据封装和数据处理功能。
    (2)JavaBean 的设计
    设计JavaBean就是编写java类,但与普通类不同,有其特殊的设计规则和要求。
    (3)javabean的设计原则

    【1】javabean是一个公共类;
    【2】javabean类具有一个公共的无参的构造方法;
    【3】javabean所有的属性定义为私有的;
    【4】在javabean中,需要对每个属性提供两个公共方法,假设属性名是XXX,要提供的两个方法是:
    		setXXX():用来设置属性XXX的值
    		getXXX()用来获取属性XXX的值(若包括类型是boolean,则方法名为isXXX());
    【5】定义javabean时,通常放在一个命名的包下。
    

    (4).javabean设计案例
    例题:设计一个表示圆的JavaBean类Circle.java,并且该JavaBean中具有计算圆的周长和面积的方法

    package beans;
    public class Circle {
    	private int number;//圆的编号
    	private double x;//圆心X的值
    	private double y;//圆心Y的值
    	private double radius;//半径
    	private String color;//绘制颜色
    	private boolean fill;//是否填充
    	
    	public int getNumber()  //成员number的get方法
    	{
    		return number;
    		}
    	public void setNumber(int number)  //成员number的set方法
    	{
    		this.number=number;
    		}
    	
    	public double getX()
    	{
    		return x;
    		}
    	public void setX(double x)
    	{
    		this.x=x;
    		}
    	
    	public double getY()
    	{
    		return y;
    		}
    	public void setY(double y)
    	{
    		this.y=y;
    		}
    	
    	public double getRadius()
    	{
    		return radius;
    		}
    	public void setRadius(double radius)
    	{
    		this.radius=radius;
    		}
    	
    	public String getColor()
    	{
    		return color;
    		}
    	public void setColor(String color)
    	{
    		this.color=color;
    		}
    	
    	public boolean isFill() //注意boolean类型属性的get/set方法以及该属性的声明
    	{
    		return fill;
    		}
    	public void setFill(boolean fill)
    	{
    		this.fill=fill;
    		}
    	
    	public Circle(){}
    	//公共无参构造方法,这里使用的是默认构造方法
    	
    	public double circleArea()
    	{
    		return Math.PI*radius*radius;
    		}
    	public double circleLength()
    	{
    		return 2*Math.PI*radius;
    		}
    }
    

    (5)在JSP中使用JavaBean
    用JSP标签来访问JavaBean包括以下几种

    <jsp:useBean>:声明并创建JavaBean对象实例;
    <jsp:serProperty>:对JavaBean对象的指定属性设置值;
    <jsp:getProperty>:获取JavaBean对象指定属性设置值,并显示自网页上。
    

    例题:设计Web程序,计算任意两个整数的和,并在网页上显示结果

    1.首先设计实现数据求和的JavaBean类Add.java

    package beans;
    public class Add {
    	private int shuju1;
    	private int shuju2;
    	public int getshuju1(){return shuju1;}
    	public int getShuju1() {
    		return shuju1;
    	}
    	public void setShuju1(int shuju1) {
    		this.shuju1 = shuju1;
    	}
    	public int getShuju2() {
    		return shuju2;
    	}
    	public void setShuju2(int shuju2) {
    		this.shuju2 = shuju2;
    	}
    	public Add(){}
    	public int sum(){return shuju1+shuju2;}
    	
    }
    

    2.设计提交任意两个整数的JSP页面(input.jsp)

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>  
        <title>提交任意两个整数的页面</title>
      </head>
      
      <body>
        <h3>按下列格式要求,输入两个整数:</h3><br>
        	<form action="show.jsp" method="post"></form>
        		加数:<input name="shuju1"><br><br>
        		被加数:<input name="shuju2"><br><br>
        		<input type="submit" value="提交">
      </body>
    </html>
    

    3.设计显示结果的页面(show.jsp)

    <%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
      <title>利用JavaBean+JSP求两数和</title>
      <body>
        <jsp:useBean id="c" class="beans.Add" scope="request"/>
        <jsp:setProperty name="c" property="*"/>  /为c对象的属性赋值
        <p>调用jsp:property 做标签以及求和方法获取数据并显示:<br/>
        	<jsp:getProperty name="c" property="shuju1"/>+ <jsp:getProperty name="c" property="shuju2"/>
        			=<%=c.sum() %><br>
        </p>
        <p>调用使用类的方法获取数据并显示:<br>
        	<%=c.getShuju1() %>+<%=c.getShuju2() %>=<%=c.sum()%><br>  //显示属性值
        	</p>
      </body>
    </html>
    

    (6)声明JavaBean对象
    1.声明JavaBean对象,需要用<jsp:useBean)的动作标签
    2.声明格式:

    <jsp:useBean id="对象名" class="类名" scope="有效范围"/>
    使用说明:
    ···class属性:用来指定JavaBean的类名决定路径,例如:class=beans.Add
    ···id属性:指定所要创建的对象名称
    ···scope属性:指定所创建对象的作用范围,其取值有四个:页面page【默认值】、请求request、会话session、应用application,
    

    3.要在show.jsp页面中,创建一个Add类对象c且其范围是session,则需要语句:

    <jsp:useBean id="c" class="beans.Add" scope="session"/>
    <jsp:useBean id="c" class="beans.Add"/>
    

    (7)访问JavaBean属性------设置JavaBean属性值
    设置JavaBean属性值需要<·jsp:setProperty>动作标签。而<·jsp:setProperty>动作标签是通过JavaBean中的set方法给相应的属性设置的值。它有四种设置方式:
    <·jsp:setProperty>有四种设置方式

    1.简单JavaBean的属性设置
    ····设置属性值格式:<jsp:setProperty name="beanname" property="propertyname" value="beanvalue"/
    	例如:对c对象的两个属性值分别设置为10和20
    		<jsp:useBean  id="c" class="beans.Add" scope="session"/
    		<jsp:setProperty name="c" property="shuju1" value="10"/>// <%c.setShuju1(10);
    		 <jsp:setProperty name="c" property="shuju2" value="20" />// c.setShuju2(20);%>
    ····功能:为beanname对象指定的属性propertyname设置指定值beanvalue
    
    2.将单个属性与输入参数直接关联
    ····设置属性值格式为:<jsp:setProperty name="beanname" property="propertyname"/>
    	例如:<jsp:setProperty name="c" property="shuju1" />
    		//在提交页面中存在输入域参数shuju1
    		<jsp:setProperty name="c" property="shuju2" />
    	 //在提交页面中存在输入域参数shuju1
    ····功能:将参数名称为propertyname的值提交给同JavaBean属性名成同名的的属性,并自动实现数据类型的转换
    
    3.将单个属性与输入参数间接关联(对于客户端所提交的参数,可以直接给javabean实例中的同名属性赋值)
    ····设置属性值格式为:<jsp:setProperty name="beanname" property="propertyname"/>
    ····功能:将请求参数名称为paramname的值给JavaBean的propertyname属性设置属性值
    
    4.将所有的属性与请求参数关联(将所有的属性与请求参数关联实现自动赋值并自动转换数据类型)
    ····设置属性值格式为:<jsp:setProperty name="beanname" property="*"/>
    ····功能:将所有的属性与请求参数关联实现自动赋值并自动转换数据类型
    注意:如果JavaBean类Add.java中的属性名称(shuju1,shuju2)与input2.jsp中两个输入域属性名称(name="shuju1",name="shuju2")不同就不能给JavaBean对象相应属性设置值。
    

    (8)JavaBean属性---获取JavaBean属性值并显示
    在JSP页面显示JavaBean属性值,需要使用<jsp:getProperty/动作标签。
    ····其格式为:

    <jsp:getProperty name="beanname" property="propertyname"/>
    
    说明:jsp:property动作标签是通过JavaBean中的get方法获取对应属性的值
    
    ····功能:获取JavaBean对象指定属性的值,并显示在页面上
    **(9)访问JavaBean方法-----调用JavaBean业务处理方法**
    例如:用jsp:useBean 创建的对象实例c ,通过<·jsp:setProperty>修改属性值后计算并显示和值
    

    加数:<jsp:getProperty name="c" property="shuju1"/

    被加数:<jsp:getProperty name="c" property="shuju2"/

    和值:<%=c.sum() %>

    
    **(10)多个JSP页面共享JavaBean**
    
    ···在JSP中,对于<jsp:useBean/ 动作标记可以使用scope 属性来指定bean存储的位置(作用域),可以让多个JSP页面共享数据。
    ···共享JavaBean的创建
    创建格式:<jsp:useBean id="..." class="..." scope=".."/
    其中scope的属性有三种:page request session application 
    具体每一种的 共享方式解释
    

    1.page共享
    默认值使用非共享(作用域为页面)的bean;

    2.request 共享
    共享作用域为请求的bean,处理当前请求的过程中,bean对象应存储在request对象中,可以通过getAttribute访问到它们;

    3.session共享
    共享作用域为会话的bean。bena会存储在与当前请求关联的session中,和普通会话对象一样,可以使用getAttribute访问到他;

    4.application共享
    共享作用域在应用(即作用域为ServletContent)的bean

  • 相关阅读:
    Java并发编程:同步容器
    Java并发编程:深入剖析ThreadLocal
    使用jQuery开发一个响应式超酷整合RSS信息阅读杂志
    Javascript 严格模式
    参数传递的四种形式----- URL,超链接,js,form表单
    《CSS 设计指南》学习笔记 一
    【BootStrap】初步教程
    JavaScript日期对象使用总结
    Web前端知识技能大汇总
    浏览器 CSS Hack 收集
  • 原文地址:https://www.cnblogs.com/qichunlin/p/7739152.html
Copyright © 2011-2022 走看看