什么是JavaBean


JavaBean是Java开发语言中一个可以重复使用的软件组件,它本质上就是一个Java类,使用JavaBean最大的优点在于提高代码的重用性,将复杂需求分解成简单的功能模块,这些模块是相对独立的,可以继承、重用:

1.一次性编写
2.任何地方执行
3.任何地方重用

值JavaBean示例


import java.io.*;
public class MyBean 
{	
	private String name; 
	private String password;	
	public String getName() {
	return name;
	}
	public void setName(String myname) {
	name = myname;
	}
   public void setPassword(String password) 
           ……
	}

JavaBean规范


为了规范JavaBean的开发,Sun公司发布了JavaBean的规范,它要求一个标准的JavaBean组件需要遵循一定的编码规范,具体如下:

(1)是一个公共类。
(2)它必须具有一个公共的、无参的构造方法,这个方法可以是编译器自动产生的默认构造方法。
(3)提供公共的setter方法和getter方法,让外部程序设置和获取JavaBean的属性。
(4)类可序列化(能够持久保存也能恢复状态),也就是说,它需要实现java.io.Serializable接口。

JSP对JavaBean的调用


1、使用JSP动作

javabean作用范围session javabean的作用是什么_java

2、通过脚本代码


jsp:useBean动作


<jsp:useBean id = "beanName" 
	scope = "page|session|application|request"
	class = "BeanClass" />
id属性:表示实例化的对象名称
class属性:这个JavaBean所对应的包.类名。
scope属性:表示此对象保存的作用范围,默认为page

JavaBean的生命周期


javabean作用范围session javabean的作用是什么_JavaBean_02


jsp:setProperty动作


<jsp:setProperty name="beanName" last_syntax />
last_syntax语法格式如下:
1、property="*" 
2、property="propertyName"
3、property="propertyName" param="parameterName" 
4、property="propertyName" value="value"

<jsp:getProperty name = "BeanName" property = "Prop" />
name属性:指定JavaBean的名称。
property属性:指定从JavaBean中要检索的属性名称。

JavaBean的分类


值JavaBean

值JavaBean通常作为信息的容器,通常用来封装表单数据。

工具JavaBean

工具JavaBean通常用于封装业务逻辑、数据操作等,如连接数据库,对数据库进行增删改查和解决中文乱码等操作。使用工具JavaBean可以实现业务逻辑与前台程序的分离,提高了代码的可读性与易维护性。

使用演示:


1:

javabean作用范围session javabean的作用是什么_java_03

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import = "cn.demo.one.javabean.Student" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<%
	Student stu = new Student();
	stu.setName("张三");
	stu.setAge(20);
%>

<h3>姓名:<%=stu.getName() %></h3>
<h3>年龄:<%=stu.getAge() %></h3>

</body>
</html>

javabean作用范围session javabean的作用是什么_jsp_04

注意:
<%@ page import = “cn.demo.one.javabean.Student” %>
导报的使用

cn.demo.one.javabean
Student.java:

package cn.demo.one.javabean;

import java.io.Serializable;

public class Student implements Serializable {
	
	private String sid;//学号
	private String name;
	private int age;
	
	public Student() {//无参数构造方法
		super();
	}
	
	
	
	public Student(String sid, String name, int age) {
		super();
		this.sid = sid;
		this.name = name;
		this.age = age;
	}



	public String getSid() {
		return sid;
	}
	public void setSid(String sid) {
		this.sid = sid;
	}
	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;
	}
	
	
}

javabean作用范围session javabean的作用是什么_JavaBean_05

2:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<jsp:useBean id="stu" class="cn.demo.one.javabean.Student" scope="request"></jsp:useBean> <!-- scope是Bean的范围,不加这个属性默认的就是当前页page -->

<%
	//Student stu = new Student();
	stu.setName("Lisa");
	stu.setAge(20);
%>

<jsp:setProperty property="name" name="stu" value="李四"/> <!-- name属性值就是上面jsp:useBean id="stu"的ID属性值 -->
<jsp:setProperty property="age" name="stu" value="19"/>

<h3>姓名:<%=stu.getName() %></h3>
<h3>年龄:<%=stu.getAge() %></h3>

<jsp:forward page="a2_bean03.jsp"></jsp:forward>

</body>
</html>

a2_bean03.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<jsp:useBean id="stu" class="cn.demo.one.javabean.Student" scope="request"></jsp:useBean> 

<h3>a2_bean03.jsp</h3>
<h3>姓名:<%=stu.getName() %></h3>
<h3>年龄:<%=stu.getAge() %></h3>

</body>
</html>

javabean作用范围session javabean的作用是什么_jsp_06

注意:两个文件中的
<jsp:useBean id=“stu” class=“cn.demo.one.javabean.Student” scope=“request”></jsp:useBean>
中的scope属性值要相同才可以

3:

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<form action="a2_bean05.jsp" method="post">
	学生学号:<input type="text" name="sid" ><br>
	学生姓名:<input type="text" name="name" ><br>
	学生年龄:<input type="text" name="age" ><br>
	<input type="submit" value="提交">
</form>

</body>
</html>

a2_bean05.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import = "cn.demo.one.javabean.Student" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<%
	request.setCharacterEncoding("utf-8");
	Student stu = new Student();
	stu.setSid(request.getParameter("sid"));
	stu.setName(request.getParameter("name"));
	stu.setAge(Integer.parseInt(request.getParameter("age")));
%>

<h3>a2_bean05.jsp</h3>
<h3>学号:<%=stu.getSid() %></h3>
<h3>姓名:<%=stu.getName() %></h3>
<h3>年龄:<%=stu.getAge() %></h3>

</body>
</html>

javabean作用范围session javabean的作用是什么_html_07


javabean作用范围session javabean的作用是什么_html_08

对于a2_bean05.jsp文件,可以换一种形式,如下:
a2_bean05.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

<%
	request.setCharacterEncoding("utf-8");

%>

<jsp:useBean id="stu" class="cn.demo.one.javabean.Student"></jsp:useBean>
<jsp:setProperty property="*" name="stu"/>  <!-- 所有的属性自动赋值 -->

<h3>a2_bean06.jsp</h3>
<h3>学号:<%=stu.getSid() %></h3>
<h3>姓名:<%=stu.getName() %></h3>
<h3>年龄:<%=stu.getAge() %></h3>

</body>
</html>

javabean作用范围session javabean的作用是什么_jsp_09


javabean作用范围session javabean的作用是什么_javabean作用范围session_10