JavaBean的使用实例、原理

最近拿起之前看过的WEB书准备再翻看翻看,到了JavaBean这里觉得有必要写一点东西帮助刚接触的小白。

一、JavaBean的含义

       JavaBean是使用Java语言开发的一个可重用组件,能使Html代码与JAVA代码分离,并节省开发时间,简单的说就是一个包含了setter和getter以及至少一个无参构造方法的JAVA类,在框架中或其他方面也管它叫做PO,VO,TO等

例如:

package pojo;

public class Person {
	private String name;
	private int age;
	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在jsp中的使用

       写个简单的例子很容易明白

       首先一个用一个页面传递参数,如下

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<form action="getBean.jsp" method="post">
		<table border="1">
			<tr>
				<td>
				姓名:<input type="text" name="name"><br>
				年龄:<input type="text" name="age">
				</td>
			</tr>
			<tr>
				<td>
				<input type="submit" value="提交"> <input type="reset" value="重置">
				</td>
			</tr>
		
		</table>
	</form>
</body>
</html>

然后写一个演示页面来封装参数并输出,代码如下(jsp:useBean以及jsp:setProperty标签的用法在注释中给出

<%@ page language="java" contentType="text/html;"
    pageEncoding="UTF-8"%>
<!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=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<%request.setCharacterEncoding("UTF-8"); %>
<!-- 使用JAVABEAN id代表实例化对象的名称 -->
	<jsp:useBean id="person" scope="page" class="pojo.Person"></jsp:useBean>
<!--name与jsp:useBean中声明的Id一一对应,*代表自动装配 ,填入属性值如name则只装配name的值 -->
	<jsp:setProperty name="person" property="*"></jsp:setProperty>
	<h3><%=person.getName() %></h3>
	<h3><%=person.getAge() %></h3>
	<!-- 可以使用param来指定参数内容非撞到那个属性内,如下输出颠倒 -->
	<jsp:setProperty name="person" property="name" param="age"/>
	<jsp:setProperty name="person" property="age" param="name"/>
	<h3><%=person.getName() %></h3>
	<h3><%=person.getAge() %></h3>
</body>
</html>

运行结果:



提交之后


至于我将年龄也写为数字的原因是,Person这个JavaBean中age是Int型,如果填入String,在演示将指定参数封装到属性的时候会出现java.lang.NumberFormatException,即数字类型转化错误。

三、JavaBean的原理

        简单的说是依靠反射机制完成的,在jsp:useBean中也给出了具体的包.类,如果对这个很生疏,可以去学习JAVASE中的反射部分,后面的很多框架也会用到,打字写博客也是很累的,这里就简单提一下,没写过多不代表不重要啊,想知道更多原理就度娘吧,很多框架都会用到这个,很重要!!!

猜你喜欢

转载自blog.csdn.net/qq_37922457/article/details/80900308
今日推荐