- JavaBean介绍
JavaBean是封装的类,可以实现代码的重用,可分为可视化JavaBean和不可视化JavaBean。可视化JavaBean如GUI图形化编程的类;不可视化JavaBean又分为带有getXxx、setXxx、isXxx等方法封装的类和其他功能性封装的类。
- JSP JavaBean规范
用于web(jsp)访问的JavaBean类一般遵循如下规范:
- 实现java.io.Serializable接口(jdk11以前,后面不建议使用,在分布式时不占优势。)
- 有一个public修饰的构造方法
- 属性用private修饰
- 类不能用final修饰
- 为属性提供set和get方法
- boolean属性建议提供isXXX和setXXX方法
2.JSP与JavaBean交互
JSP通过【jsp:useBean】标签调用JavaBean类,通过【jsp:setProperty】设置属性值,通过【<jsp:getProperty】获取属性值。
下面是JavaBean代码
package javabean;
public class Test1 {
private String name;
private String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
下面是jsp页面调用JavaBean类
<%@ page language="java" contentType="text/html; charset=UTF-8"
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=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>测试</h1>
<!-- //调用Test1类,id相当于定义的对象,class相当于导入包 -->
<jsp:useBean id="test" class="javabean.Test1"></jsp:useBean>
<!-- //设置属性值,property为要设置的属性值,name为属性的对象,value为要设置的值 -->
<jsp:setProperty property="name" name="test" value="小明"/>
<jsp:setProperty property="password" name="test" value="123"/>
<h3>读到的数据为:
<!-- //设置属性值,property为要读取的属性值,name为属性的对象,value为要设置的 -->
</h3><jsp:getProperty property="name" name="test"/>
<jsp:getProperty property="password" name="test"/>
</body>
</html>
下面是运行效果
javabean的生命周期可以进行自行设置,它存在与4范围内,分别为page,requerst,session和application,默认情况下,JavaBean作用与page范围内。
下面是JavaBean代码
package javabean;
public class Test1 {
private String name;
private String password;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
}
}
jsp页面
<%@ page language="java" contentType="text/html; charset=UTF-8"
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=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h1>测试</h1>
<form action="accept.jsp" method="post">
<table align="center" width="400" height="40" border="1">
<tr><td align="center" colspan="2" height="40">
<b>添加用户信息</b>
</td></tr>
<tr><td align="right">姓名:</td><td><input type="text" name="name"></td></tr>
<tr><td align="right">密码:</td><td><input type="password" name="password"></td>
<tr>
<td align="center" colspan="2"><input type="submit" value="添加"></td></tr></table></form>
</body>
</html>
accpect.jsp页面
//通过<jsp:setProperty="*"/>的形式接受所有的参数。(表单的属性名称要设置为javabean中的属性名称“)
<%@page import="javabean.Test1"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
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=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%request.setCharacterEncoding("utf-8"); %>
<jsp:useBean id="persion" class="javabean.Test1" scope="page">
<jsp:setProperty name="persion" property="*"/>
</jsp:useBean>
<table align="center" width="400">
<tr><td align="right" >姓名:</td><td><jsp:getProperty property="name" name="persion"/></td></tr>
<tr><td align="right" >密码:</td><td><jsp:getProperty property="password" name="persion"/></td></tr></table>
</body>
</html>
运行效果