JavaBean/BeanUtils/EL

jsp:useBean、jsp:setProperty、jsp:getProperty的使用

什么是JavaBean?

JavaBean 是开发语言中一个可以重复使用的软件组件,它本质上就是一个java类,为了规范JavaBean的书写,它也有一定的规范,它要求一个标准的JavaBean组件需要遵循一定的编码规范,具体如下:
(1)必须有一个公共的、无参的构造方法;
(2)它提供公共的setter和getter方法,让外部程序设置和获取JavaBean的属性;
在eclipse中编写JavaBean十分的方便,可以通过在输入属性后,通过右击选择source中的功能实现,具体如下图:
在这里插入图片描述

利用JavaBean创建对象

<jsp:useBean id=“xxx” scope=“session” class=“接口”/>,会话级bean,说明此bean的有效期是session级别的,在同一个session的页面中,可用共享这个实例,引用 scop作用域的类,并赋名称是id;
<jsp:useBean id=“customer” class=“com.servlet.CustomerBean” scope=“session”>引用 com.servlet.CustomerBean类,并赋名称是customer
<jsp:setProperty name=“customer” property="*"/>把一个叫做customer的bean的所有和request请求参数名相同的属性赋值
</jsp:useBean>
<jsp:getProperty name=“customer” property=“custName”/>

动态访问Java对象的属性——BeanUtils对象

BeanUtils 是 Apache commons组件的成员之一,主要用于简化JavaBean封装数据的操作。它可以给JavaBean封装一个字符串数据,也可以将一个表单提交的所有数据封装到JavaBean中。
在这里插入图片描述
熟练掌握以上三个方法对灵活运用JavaUtil工具尤其重要,下面通过一个例子熟悉这三个方法:
Person.java

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.java

import java.util.HashMap;
import java.util.Map;
import org.apache.commons.beanutils.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表达式

为了简化JSP页面的书写,掌握EL是相当重要的。

EL语法:

${表达式}

下面通过一个例子来具体了解一下:
MyServlet.java

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
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);
	}
}

myjsp.jsp

<%@ page language="java" contentType="text/html; charset=utf-8"
	pageEncoding="utf-8"%>
<html>
<head></head>
<body>
    
	用户名:<%=request.getAttribute("username")%><br /> 
	密 码:<%=request.getAttribute("password")%><br />	
	<hr>
	使用EL表达式:<br />
	用户名:${username}<br />
 	密 码:${password}<br />
	
</body>
</html>

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值