JavaBean的使用
制作人:全心全意
能通过标签操作Java类,是因为编写的类遵循了JavaBean规范
<jsp:usebean>:实例化JavaBean对象
说明:通过该标签获取类的实例,其内部是通过实例化的默认构造方法进行获取,所以,JavaBean需要有一个默认的无参的构造方法
<jsp:getProperty>:获取JavaBean中的属性信息
说明:其内部是通过调用指定属性的getXXX()方法进行获取,所以,JavaBean规范要求为属性提供公共的(public)类型的访问器。
<jsp:setProperty>:对JavaBean中的属性赋值
说明:其内部是通过调用指定属性的setXXX()方法进行赋值,所以,JavaBean规范要求为属性提供公共的(public)类型的访问器。
将JavaBean对象应用到JSP页面中,JavaBean的生命周期可以自行设置,它存在于4种范围内,分别为page、request、session、application,默认情况下,JavaBean作用于page范围内。
在JSP页面中应用JavaBean的实例
Person类:对用户信息的封装类
package com.zq.bean; public class Person { private String name; //姓名 private int age; //年龄 private String sex; //性别 private String add; //住址 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 String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public String getAdd() { return add; } public void setAdd(String add) { this.add = add; } }
index.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>在JSP页面应用JavaBean-index.jsp</title> </head> <form action="result.jsp" method="post"> <table align="center" width="400" border="1" height="200"> <tr> <td colspan="2" align="center" 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="text" name="age"/></td> </tr> <tr> <td align="right"> 性 别:</td> <td><input type="text" name="sex"/></td> </tr> <tr> <td align="right"> 住 址:</td> <td><input type="text" name="add"/></td> </tr> <tr> <td align="center" colspan="2"> <input type="submit" value="添 加"/> </td> </tr> </table> </form> </body> </html>
小技巧:表单信息中的属性名称做好设置成为JavaBean中的属性名称,这样就可以通过“<jsp:setProperty property="*" />”的形式来接收所有参数,这种方式可以减少程序中的代码量。如将用户年龄文本框的name属性设置为age,它对应Person类中的age。
result.jsp页面:对index.jsp页面中表单的提交请求进行处理。该页面将获取表单提交的所有信息,然后将所获取的用户信息输出到页面中
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <%@ page import="com.zq.bean.Email" %> <!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>在JSP页面应用JavaBean-result.jsp</title> </head> <body> <%request.setCharacterEncoding("utf-8"); %> <jsp:useBean id="person" class="com.zq.bean.Person" scope="page"> <jsp:setProperty name="person" property="*" /> </jsp:useBean> <table align="center" width="400"> <tr> <td align="right">姓 名:</td> <td> <jsp:getProperty property="name" name="person"/> </td> </tr> <tr> <td align="right">年 龄:</td> <td> <jsp:getProperty property="age" name="person"/> </td> </tr> <tr> <td align="right">性 别:</td> <td> <jsp:getProperty property="sex" name="person"/> </td> </tr> <tr> <td align="right">住 址:</td> <td> <jsp:getProperty property="add" name="person"/> </td> </tr> </table> </body> </html>