JavaBean就是一个普通的java类,也称之为简单java对象 POJO(Plain Ordinary Java Object),是Java程序设计中一种设计模式,是一种基于java平台的软件组件思想。
JavaBean遵循特定的写法,有如下规则:
- 有无参的构造函数
- 成员属性私有化
- 封装的属性如果需要被外所操作,必须编写public类型的setter、getter方法
编写一个JavaBean
public class Person { private String name; private int age; public Person(){ } 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的好处就是:封装,重用,可读。
JavaBean可以理解为一辆货车,在java端和web页面进行数据传递的载体,当然可以每个变量单独传递,或者使用集合传递,但是javaBean可以使你的数据更有可读性,方便开发时明确变量的意义。
如果把bean类与数据库联合使用,一张表使用bean类,可以使代码更加简洁高效,易于理解,现在大多数框架都会使用这种机制。
JSP行为(JavaBean)
JSP技术提供了三个关于JavaBean组件的动作元素,即JSP行为(标签),分别为:
- <jsp:usebean>【在jsp页面中查找javaBean对象或者实例化javaBean对象】
- <jsp:setProperty>【设置javaBean的属性】
- <jsp:getProperty>【获取javaBean的属性】
<jsp:usebean>
<jsp:usebean>标签用于在指定的域范围内查找指定名称的JavaBean对象:
- 存在则直接返回该JavaBean对象的引用
- 不存在则实例化一个新的JavaBean对象并将它以指定的名称存储到指定的域范围中。
语法:
<jsp:usebean id="实例化对象的名称" class="类的全名" scope="保存范围"/>
先使用<%@page import="">
<%--这里是导入Person类--%> <%@ page import="com.company.Person" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <% //实例化一个Person对象 Person person = new Person(); person.setName("jerry"); System.out.println(person.getName()); %> </body> </html>
后台结果显示:jerry
使用<jsp:usebean>非常简洁,不用导包,不用new出对象
<%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> <jsp:useBean id="person" class="com.company.Person" scope="page"/> <% person.setName("jerry"); System.out.println(person.getName()); %> </body> </html>
后台显示结果:jerry
<jsp:usebean id="person" class="domain.Person" scope="page"/>内部原理:

当JavaBean中没有无参的构造函数,则会出现异常。
<jsp:setProperty>
语法:
<jsp:setProperty name="对象名称" property="属性名" param="参数名" value="值">
在语法上可分为四种模式:
- <jsp:setProperty name="对象名称" property="*"/>【自动匹配】
- <jsp:setProperty name="对象名称" property="属性名称"/>【指定属性】
- <jsp:setProperty name="对象名称" property="属性名称" param="参数名称"/>【指定参数(很少用)】
- <jsp:setProperty name="对象名称" property="属性名称" value="内容"/>【指定内容(很少用)】
当没有学习<jsp:setProperty>时,获取表单的信息。
form.jsp(表单页面代码)
<form action="page.jsp" method="post"> 用户名:<input type="text" name="name"/><br/> 年龄 :<input type="text" name="age"/><br/> <input type="submit" value="提交"/> </form>
page.jsp(处理提交过来的数据)
<jsp:useBean id="person" class="com.company.Person"/> <% String name=(String)request.getParameter("name"); int age=Integer.parseInt(request.getParameter("age")); person.setName(name); person.setAge(age); System.out.println(person); %>
显示结果:Person{name='jerry', age=23}
使用<jsp:setProperty>
<jsp:useBean id="person" class="com.company.Person"/> <jsp:setProperty name="person" property="name"/> <jsp:setProperty name="person" property="age"/> <% System.out.println(person); %>
显示结果:Person{name='jack', age=30}
使用自动匹配
<jsp:useBean id="person" class="com.company.Person"/> <jsp:setProperty name="person" property="*"/> <%--<jsp:setProperty name="person" property="name"/> <jsp:setProperty name="person" property="age"/>--%> <% System.out.println(person); %>
显示结果:Person{name='Lebron', age=32}
表单的name属性值跟JavaBean的属性名称要保持一致,否则不能将表单带过来的数据成功封装到JavaBean对象上。因为它是通过反射来做的,调用了内省的方法。

<jsp:getProperty>
语法:
<jsp:getProperty name="对象名称" property="属性名称"/>
<jsp:getProperty name="person" property="name"/> <jsp:getProperty name="person" property="age"/>
原理:

posted on
浙公网安备 33010602011771号