一.什么是JavaBean?
JavaBean是使用Java语言开发的一个可重用的组件,在JSP开发中可以的大量减少代码重复。把html文件和java文件分离开,减少日后维护的困难。当在JSP要使用时,只要调用JavaBean组件来执行用户所要的功能,不用再重复写相同的程序,这样以来也可以节省开发所需的时间。
二.JavaBean规范
1,有一个空参数的构造方法
2,提供get/set方法,如果只有get方法,说明这个属性为只读属性.
3,即使没有成员变量,但是有get/set方法,那么也是一个属性.
4,方法名称满足一定的规范(命名规范),那么就是一个属性.
三.JavaBean的使用
beanutils.setproperty (property是属性的意思)
beanutils.getproperty
beanutils.populate (beanutils 是一个jar包)
四.例子
public class T {
@Test
public void t1() throws Exception{
//获得Student类的对象clazz
Class<?> clazz = Class.forName("Student");
//调用类对象clazz方法,创建出一个对象
Object o = clazz.newInstance();
BeanUtils.setProperty(o,"name","张三");//o代表给那个对象,property是属性的意思
String name = BeanUtils.getProperty(o, "name");
String age = BeanUtils.getProperty(o, "age");
String school = BeanUtils.getProperty(o, "school");
System.out.println(name+"--"+age+"---"+school);
}
我还创建了一个叫Student的类,里面有三个属性,get/set方法,一个空参的构造方法
public class Student {
private String name ;
private int age ;
private String gender;
/**
* JavaBean一定要有一定空参的构造方法
*/
public Student() {
}
最后输出姓名+年龄+学校
另外的一个例子:
1,写一个JSP页面
2,写一个表单,用户输入姓名,年龄,性别等数据
3,点击表单提交,将参数传递到LoginServlet
4,将获得到的参数信息,封装给一个Student对象.请求转发给success.jsp页面
5,在success.jsp页面中,获得请求域中的Student对象,输出该对象的信息到浏览器
<form action="/Login" method="post">
<label for="name">姓名</label>
<input type="text" id="name" name="name">
</br>
<label for="age">年龄</label>
<input type="text" id="age" name="age">
</br>
<label for="gender">性别</label>
<input type="text" id="gender" name="gender">
<input type="submit" value="提交">
</form>
上边的是一个表单,可以输入姓名,年龄,性别,
Map<String, String[]> map = request.getParameterMap();
//把传递过来的放进map中
Student student=new Student();
try {
BeanUtils.populate(student,map);
//放进student中
request.setAttribute("student",student);
request.getRequestDispatcher("/success.jsp").forward(request,response);//请求转发跳转到success.jsp
} catch (IllegalAccessException e) {
System.out.println("发生了错误");
} catch (InvocationTargetException e) {
e.printStackTrace();
}
上边的是LoginServlet页面
<title>success</title>
</head>
<body>
<%
Object student = request.getAttribute("student");
%>
<%=student%>
</body>
跳转到success.jsp页面,完成输出。
输入的是11,12,12
最后的输出就是这样子。