一、什么是javaBean
javaBean是java开发语言中一个可以重复使用的软件,它本质上就是一个java类。
(1)它必须具有一个公共的、无参的构造方法,这个方法可以是编译器自动产生的默认构造方法。
(2)它提供公共的setter方法和getter方法,让外部程序设置和获取javaBean的属性。
创建一个Book类
public class Book {
private double price;
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
定义一个Book类,该类就是一个javaBean,它没有定义构造方法,java编译器在编译时,会自动为这个类提供一个默认的构造方法。
2、访问javaBean的属性
创建一个Student类,用来具现一个javaBean程序。
public class Student {
private String sid;
private String name;
private int age;
private boolean married;
// age属性的getter和setter方法
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
// married属性的getter和setter方法
public boolean isMarried() {
return married;
}
public void setMarried(boolean married) {
this.married = married;
}
// sid属性的getter方法
public String getSid() {
return sid;
}
// name属性的setter方法
public void setName(String name) {
this.name = name;
}
public void getInfo() {
System.out.print("我是一个学生");
}
}
3、BeanUtils工具
(1)beanUtils 可以便于对javaBean的属性进行赋值。
(2)beanUtils 可以便于对javaBean的对象进行赋值。
(3)beanUtils可以将一个MAP集合的数据拷贝到一个javabean对象中。
在创建一个Person类,该类定义了name和age两个属性,并提供了对应的getter方法和setter方法供外界访问这个两个属性。
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;
}
}
在创建一个BeanUtilsDemo类,该类使用了BeanUtils方法。
public class BeanUtilsDemo {
public static void main(String[] args) throws Exception {
Person p = new Person();
// 使用BeanUtils为属性赋值
BeanUtils.setProperty(p, "name", "Jack");
BeanUtils.setProperty(p, "age", 10);
// 使用BeanUtils获取属性值
String name = BeanUtils.getProperty(p, "name");
String age = BeanUtils.getProperty(p, "age");
System.out.println("我的名字是" + name + ",我今年" + age + "岁了!");
// 创建map集合,用于存放属性及其属性值
Map<String, Object> map = new HashMap<String, Object>();
map.put("name", "张三");
map.put("age", 10);
// 使用populate()方法为对象的属性赋值
BeanUtils.populate(p, map);
// 打印赋值后对象的信息
System.out.println("姓名:" + p.getName() + ", 年龄:" + p.getAge());
}
}
运行:
二、EL表达式
Expression Language表达式语言
是一种在JSP页面获取数据的简单方式(只能获取数据,不能设置数据)
在JSP2.0开始引入概念
1、初识EL
如果没有使用EL的内置对象,则查找数据顺序是依次按照由小到大范围从四大域中查找指定名称的属性值
创建一个用于存储用户密码的类。
public class MyServlet extends HttpServlet {
public void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
request.setAttribute("username", "itcast");
request.setAttribute("password", "123");
RequestDispatcher dispatcher = request
.getRequestDispatcher("/myjsp.jsp");
dispatcher.forward(request, response);
}
public void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
然后在webContent下编写一个jsp文件,用于输出MyServlet所存储的信息。
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
<html>
<head></head>
<body>
用户名:<%=request.getAttribute