JavaWeb程序设计基础(JavaBean篇)

目录

一、JavaBean的概述

1、什么是JavaBean

2、好处

3、分类

二、规范

1、技术上

2、应用上

3、个人信息表(代码例子)

 三、应用

1、两种方法

2、useBean

3、getProperty

4、setProperty

5、显示时间

四、作用域

1、page作用域

2、request作用域

3、session作用域

4、application作用域


一、JavaBean的概述

1、什么是JavaBean

(1)组件是独立的模块,在外界不了解其内部实现的情况下,可以通过其提供的接口对组件进行访问,组件可以重用,目前有代表性的组件技术有COM、COM+、JavaBeans、EJB

(2)JavaBean是Java的可重用组件技术,实质是一种符合某些命名和设计规范的Java类, 应用JavaBean的主要目的实现代码重用,便于维护和管理。在JSP的Web应用中集成JavaBean组建,由JavaBean中处理业务逻辑,然后在JSP中调用,而JSP页面着重网页界面的设计,可以实现业务逻辑和前台显示的部分分离

2、好处

(1)可以使得JSP页面变得清晰(业务逻辑和前台显示分离)

(2)节省软件开发时间(可以直接使用已经测试和可信的已有组件,避免了重复开发)

(3)降低系统维护的难度

(4)为JSP应用带来了更多的可伸缩性,使系统变得健壮和灵活

3、分类

(1)可视:即传统的JavaBean应用于可视化界面(如java图形界面中使用的按钮、文本框或列表框等等)

(2)非可视化:封装逻辑、封装数据,与JSP搭配使用

二、规范

1、技术上

任何java类,如果实现了java.io.Serializable接口,且提供默认的构造方法(没有参数的构造方法),都可以称为JavaBean

2、应用上

(1)该类是一个公有类,并用package语句声明属于某个包

(2)该类实现了java.io.Serializable接口(系列化接口作用,接口与类区别)

(3)该类如果有构造方法,那么这个构造方法是公有(用public修饰)并且无参数

(4)该类的属性一般是私有(用private修饰)的

(5)私有属性有公有(用public修饰)的访问器方法;例如:私有属性xxx的读取方法为getXxx(),设置方法为setXxx(),如果属性类型为boolean,它的读取方法为isXxx()

(6)该类的方法一般是共有的

注意:如果在JSP中使用JavaBean组件,创建的JavaBean不必实现java.io.Serializable接口仍然可以运行)

3、个人信息表(代码例子)

(1)显示个人信息文件

<%@ page contentType="text/html;charset=UTF-8"%>
<%@ page language="java" import="com.ch4.*"%><!-- 小伙伴们注意import的自己是在src下建的文件夹路径 -->
<html>
<head>
<title>显示个人信息</title>
</head>
<body>
	<jsp:useBean id="student" class="com.ch4.Person" scope="application"></jsp:useBean>
	<!-- 等同于<%-- <% Person p = new Person(); %> --%> -->
	<h3>显示人的信息</h3>
	<table border="1">
		<tr>
			<td>人名</td>
			<td><jsp:getProperty name="student" property="name" />
			<!-- 等同于 <%-- <%=p.getName();%>  --%> --></td>
		</tr>
		<tr>
			<td>性别</td>
			<td><jsp:getProperty name="student" property="sex" /></td>
		</tr>
		<tr>
			<td>年龄</td>
			<td><jsp:getProperty name="student" property="age" /></td>
		</tr>
		<tr>
			<td>班级</td>
			<td><jsp:getProperty name="student" property="classNo" /></td>

		</tr>
	</table>
</body>
</html>

(2)个人信息数据存储文件

<%@ page contentType="text/html;charset=UTF-8"%>
<%@ page language="java" import="com.ch4.*"%>
<html>
<head>
<title>JSP中使用JavaBean</title>
</head>
<body>

	<jsp:useBean id="student" class="com.ch4.Person" scope="application"></jsp:useBean>
	<jsp:setProperty name="student" property="name" value="申小兮" />
	<jsp:setProperty name="student" property="sex" value="true" />
	<jsp:setProperty name="student" property="age" value="18" />
	<jsp:setProperty name="student" property="classNo" value="1" />

	<%//上述6行代码,等同于下述5行代码
		/* 	Person p = new Person();
			p.setName("申小兮");
			p.setSex("true");
			p.setAge(18);
			p.setClassNo(1);
			*/
	%>

	<a href="4_1_listBeanData.jsp">显示信息</a>

</body>
</html>

(3)Person.java文件对数据进行封装

package com.ch4;

import java.io.Serializable;

public class Person implements Serializable {
	
	private static final long serialVersionUID = 1L;
	private String name;
	private int age;
	private boolean sex;
	private int classNo;
	
	public boolean isSex() {
		return sex;
	}
	public void setSex(boolean sex) {
		this.sex = sex;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	
	public int getClassNo() {
		return classNo;
	}
	public void setClassNo(int classNo) {
		this.classNo = classNo;
	}
	public Person() {
	
	}
}


 三、应用

1、两种方法

(1)JSP页面中使用JavaBean时,可以使用JSP脚本元素调用JavaBean

(2)也可以使用JSP提供的3个标准动作元素来访问

2、useBean

用于在网页中创建JavaBean实例

<jsp:useBean id="beanname"  class="package.class" 
 [scope="page|request|session|application"] />

(1)id:名称

(2)class:类名全称(含包名)

(3)scope:有效范围,可能的取值由4个:page、request、session、application

3、getProperty

用于读取JavaBean的属性值,实际调用的是JavaBean的getXxx()方法

<jsp:getProperty name="name" property="propertyName" />

(1)name:名称,与<jsp:useBean>标签中属性id的值相匹配

(2)property:私有属性名

4、setProperty

用于为JavaBean的属性赋值,其语法有多种

(1)

<jsp:setProperty name="beanName"  property="propertyName"   value="propertyValue" />

(2)

<jsp:setProperty name="beanName"  property="propertyName"/>
<!-- 等价于 -->
<jsp:setProperty name="beanName"  property="propertyName"  param="paramName" />

(3)一次为多个属性赋值

<jsp:setProperty name="beanName"  property="*" />

5、显示时间

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
      
    <title>电子时钟</title>
    <style type="text/css">
      #clock{
      width:500px;
      height:100px;
      padding-top: 20px;
      border:solid 5px black;
      } 
    #week{
    padding-top: 20px;
      
    }
    </style>
    <meta http-equiv="Refresh" content="1">
    <meta http-equiv="pragma" content="no-cache">
    <meta http-equiv="cache-control" content="no-cache">
    <meta http-equiv="expires" content="0">   
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="This is my page">
    <!--
    <link rel="stylesheet" type="text/css" href="styles.css">
    -->
  </head>
    
  <body>
    <jsp:useBean id="date" class="com.ch4.DateTimeBean"></jsp:useBean>
    <div id="clock">
    <div id="time">
    <jsp:getProperty property="dateTime" name="date"/>
    </div>
   <div id="week">
    <jsp:getProperty property="week" name="date"/>
    </div>
    </div>
  </body>
</html>

 


四、作用域

1、page作用域

范围是最小,客户端每次请求访问时都会创建一个JavaBean对象,JavaBean对象的有效范围是客户请求访问的当前页面文件,当客户执行当前的页面文件完毕后JavaBean对象结束生命

2、request作用域

request对象是一个内建对象,使用getParameter方法可以获取表单中的数据信息

3、session作用域

同一个浏览器内,JavaBean对象就存在于一个session中,当重新打开新的浏览器时,就会开始一个新的session,每个session中拥有各自的JavaBean对象

4、application作用域

存在于整个主机或虚拟主机的生命周期内,application范围是JavaBean的生命周期最长

<%@ page contentType="text/html;charset=UTF-8" %>
<%@ page language="java" import="com.ch4.Person" %>
<html>
	<head><title>测试JavaBean的作用域</title>
	</head>
	<body>
		<%-- <jsp:useBean id="person" class="com.ch4.person" scope="application"></jsp:useBean>  --%>
		 <jsp:useBean id="person" class="com.ch4.Person" scope="session"></jsp:useBean> 
		<%-- <jsp:useBean id="person" class="com.ch4.Person" scope="request"></jsp:useBean> --%> 
		<%-- <jsp:useBean id="person" class="com.ch4.Person" scope="page"></jsp:useBean> --%>
		<jsp:setProperty name="person" property="name" value="申小兮"/>
		<jsp:setProperty name="person" property="sex" value="女"/>
		<jsp:setProperty name="person" property="age" value="18"/>
		<br><a href="4_4.jsp">测试JavaBean的四个作用域</a>
		
	</body>
</html>

文件4_4.jsp

<%@ page contentType="text/html;charset=UTF-8" %>
<%@ page language="java" import="com.ch4.Person" %>
<html>
	<head><title>测试JavaBean的作用域</title>
	</head>
	<body>
		使用内置对象获取姓名和年龄
		<hr>
		<%-- application作用域:<br>
		姓名:<%= ((Person)application.getAttribute("person")).getName() %><br>
		年龄:<%= ((Person)application.getAttribute("person")).getAge() %> <br> --%>
		
		session作用域:<br>
		姓名:<%= ((Person)session.getAttribute("person")).getName() %><br>
		年龄:<%= ((Person)session.getAttribute("person")).getAge() %> <br>
		
		<%-- request作用域:<br>
		姓名:<%= ((Person)request.getAttribute("person")).getName() %><br>
		年龄:<%= ((Person)request.getAttribute("person")).getAge() %> <br> --%>
		
		<%-- page作用域:<br>
		姓名:<%= ((Person)pageContext.getAttribute("person")).getName() %><br>
		年龄:<%= ((Person)pageContext.getAttribute("person")).getAge() %> <br> --%>
		
	</body>
</html>

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五秒法则

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值