【JSP】JSP与JavaBean

在最原始JavaEE的MVC开发模式中,由“JSP+Servlet+JavaBean”技术所实现的MVC最为经典。本文主要粗略地讲解在JSP代码中操作JavaBean,尽管这种操作现在已经几乎不会使用,但了解它却有助于帮助我们构建JavaEE的知识体系,对后期学习框架也是有帮助的。


Table of Contents

啥是JavaBean

在JSP中导入Bean

在JSP中申明Bean对象

在JSP中访问Bean属性


MVC开发模式:

  1. Model:JavaBean实现。用于封装业务数据
  2. View:JSP实现。用于显示数据
  3. Controller:Servlet实现。用于控制model和view

啥是JavaBean

JavaBean其实也是一个Java类,只不过它是用于描述一个特殊的Java类,其必须满足三大规范:

  1. JavaBean类必须是public类;
  2. 对于属性,必须提供public的get和set方法;
  3. 必须拥有不带参数的构造方法;

JavaBean是一种开发规范,可以说是一种技术。

JavaBean的作用:

  1. 用于封装数据,保存数据,即实际项目中的实体类。
  2. 访问JavaBean只能使用getter和setter方法。

JavaBean的使用场景:

  1. 项目中用到实体对象(entity)符合JavaBean规范
  2. EL表达式访问对象属性。${student.name}  调用getName()方法,符合JavaBean规范。
  3. JSP标签中的属性赋值。 setNum(Integer num)。符合JavaBean规范。
  4. JSP页面中使用JavaBean。符合JavaBean规范

public class Student {
	private String name;
	private String sex;
	private Integer age;
	private String address;
	
	public Student() {
		
	}
	
	public void setName(String name) {
		this.name = name;
	}
	public String getName() {
		return this.name;
	}
	
	public void setSex(String sex) {
		this.sex = sex;
	}
	public String getSex() {
		return this.sex;
	}
	
	public void setAge(Integer age) {
		this.age = age;
	}
	public Integer getAge() {
		return this.age;
	}
	
	public void setAddress(String address) {
		this.address = address;
	}
	public String getAddress() {
		return this.address;
	}
}

在JSP中导入Bean

使用page指令:<%@page import=”JavaBean的完整路径” %>

在JSP中导入一个JavaBean
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="pojo.Student" %>  在JSP中导入一个JavaBean
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>KYLE</title>
</head>
<body>
	<h1>Hello, Kyle.</h1>
</body>
</html>

在JSP中申明Bean对象

在JSP页面中申明JavaBean对象:

<jsp:useBean 
    id=”所要申明Bean对象的变量名”
    scope=“此Bean对象存放在哪里?可选值有:page、request、session、application”
    指定Bean类:class=“完整类名”、type=”用于指定其父类或接口类型”
    >
</jsp:useBean>

指定Bean类:

  1. class:用于指定Bean类的完整类名;
  2. type:用于指定其父类或接口的类型;
  3. beanName=指定其父类或接口的类型;

注意:

  1. class或beanName不能同时存在;
  2. 若Bean对象已存在,class和beanName属性可以不指定,只需指定type属性;
  3. class可省去type独立使用,但beanName必须和type一起使用;
  4. class指定的类必须包含public、无参构造方法;
  5. type可以省去包名,通过<%@page import=”类完整名”%>指定所属包。

JavaBean的生命周期:

  1. 由标签<jsp:useBean>标签中的scope属性值所决定;
  2. page:使用该Bean对象,仅限于当前JSP页面;
  3. request:Bean对象的生命周期,仅从客户端请求开始到响应结束这段时间内
  4. session:在Web项目的一个Session时间内有效;
  5. application:在整个服务器都有效!
实例:快速理解JSP中申明Bean对象
<!-- File Name: hello.jsp -->
<%@ page language="java" import="java.util.Enumeration" pageEncoding="UTF-8"%>
<%@ page import="bean.HelloBean" %>

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>JavaBean</title>
</head>
<body>
	
	<jsp:useBean
		id="firstBean" 
		scope="page"
		class="bean.HelloBean"
		>
	</jsp:useBean>
	
	<!-- 相当于以下Java代码 -->
	<%
        HelloBean secondBean = new HelloBean();
    %>
	
</body>
</html>

在JSP中访问Bean属性

在JSP中写入Bean的值:
<jsp:setProperty
name=”Bean的变量名”
property=“指定Bean中属性名”
value=”给该个属性名赋值的内容:一个串或者表达式,如<%=表达式 %>”
/>


在JSP中读取Bean的值:
<jsp:getProperty
name=”Bean的变量名”
property=”Bean中的属性名”
/>
快速理解获取标签的使用
<!-- File Name: hello.jsp -->
<%@ page language="java" import="java.util.Enumeration" pageEncoding="UTF-8"%>
<%@ page import="bean.HelloBean" %>

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>JavaBean</title>
</head>
<body>
	<!-- 申明Bean对象 -->
	<jsp:useBean
		id="firstBean" 
		scope="page"
		class="bean.HelloBean"
		>
	</jsp:useBean>
	
	<!-- 设置Bean的属性值 -->
	<jsp:setProperty name="firstBean" property="name" value="kyle"/>
	
	<!-- 调用Bean的属性值 -->
	<jsp:getProperty name="firstBean" property="name" />
	
</body>
</html>

执行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值