《Java Web程序设计任务教程》简要复盘:第七章 EL表达式和JSTL


作者:氯磷Rolin

目录:

第七章 EL表达式和JSTL

为了降低JSP页面的复杂度,增加代码的重用性,Sun公司制定了JavaBean技术、标准标签库JSTL和EL表达式等,大大简化了开发的难度

JavaBean

概述

JavaBean是Java开发语言中一个可以重复使用的软件组件,它本质就是一个Java类

在JSP的开发中可以使用JavaBean减少重复代码,使整个JSP代码的开发更简洁。JSP搭配JavaBean来使用,有以下的优点:

  1. 可将HTML和Java代码分离,这主要是为了日后维护的方便。如果把所有的程序代码(HTML和Java)写到JSP页面中,会使整个程序代码又多又复杂,造成日后维护上的困难。

  2. 可利用JavaBean的优点。将日常用到的程序写成JavaBean组件,当在JSP要使用时,只要调用JavaBean组件来执行用户所要的功能,不用再重复写相同的程序,这样一来也可以节省开发所需的时间

JavaBean是一个数据的容器,它序列化后可以负责传递数据,也可以存放一些重复使用的代码,例如数据库查询工作,可以大大减少JSP页面和Servlet的代码量,使代码更具有可读性。

规范要求

  1. JavaBean本身就是一个类,属于Java的面向对象编程。

  2. 在JSP中如果要应用JSP提供的Javabean的标签来操作简单类的话,则此类必须满足如下的开发要求:

    (1) 所有的类必须放在一个包中;
    (2) 所有的类必须声明为public class,这样才能够被外部所访问;
    (3) 类中所有的属性都必须封装,即:使用private声明;
    (4) 封装的属性如果需要被外部所操作,则必须编写对应的setter、getter方法
    (5) 一个JavaBean中至少存在一个无参构造方法,此为JSP中的标签所使用。

  • 一个简单的JavaBean:
package com.Rolin.javabean;
public class JavaBean{
   
	private String name;
	private int age;
	public void setName(String name){
   
		this.name = name;
	}
	public void setAge(int age){
   
		this.age = age;
	}
	public String getName(){
   
		return this.name;
	}
	public int getAge(){
   
		return this.age;
	}
}

如果在一个类中只包含属性、setter、getter方法,那么这种类就成为简单JavaBean。

  • 对于简单的JavaBean也有几个名词:
    (1)VO:与简单Java对象对应,专门用于传递值的操作上
    (2)POJO:简单Java对象
    (3)TO:传输对象,进行远程传输时,对象所在的类必须实现java.io.Serializable接口

useBean指令

除了使用import的语句之外,也可以使用JSP中提供的:<jsp:useBean>指令完成操作,指令的操作语法如下所示:

<jsp:useBean id="实例化对象名称" scope=“保存范围” class=“包.类名称“/>
  • 主要属性
    (1)id:表示实例化对象的名称
    (2)scope:表示此对象保存的范围,一共有四种属性范围:page、request、session、application
    (3)class:对象所对应的包.类名称

  • 示例

<%@ page contentType="text/html" pageEncoding="UTF-8"%>
<jsp:useBean id="simple" scope="page" class="com.Rolin.javabean"/>
<html>
<head><title>CSDN专业开发者社区</title></head>
<body>
<%
	simple.setName("Rolin");
	simple.setAge(23);
%>
<h3>姓名:<%=simple.getName()%></h3>
<h3>年龄:<%=simple.getAge()%></h3>
</body>
</html>
  • JavaBean的实现原理
    依靠的是反射机制完成的,在使用<jsp:useBean>指令时需要定义对象所在的“包.类“名称,而且又要求类中存在无参构造方法,这就是反射操作的前提条件
    所以<jsp:useBean>的语法实际上属于反射机制的操作实现。

EL表达式

在JSP开发中,为了获取Servlet域对象中存储的数据,经常需要书写需要多Java代码,这样的做法会使JSP页面混乱,不利于维护
为此 JSP2.0 规范中提供了EL表达式(Expression Language)

初识EL

EL表达式是一种JSP技术,能够代替原本使用Java代码的语句,使得代码更加容易编写与维护。

  • 最基本的语法是${express}

  • EL表达式原理
    EL表达式在获取某个对象的属性值时,先将某个属性值首字母变成大写,然后加上get前缀,拼接成getter方法,通过反射将对象构建出来,然后执行该对象的getter方法。
    所以JavaBean的属性名要小写,且要有getter方法,不然会报错

标识符

在EL表达式中,经常需要一些符号来标记一些名称,例如变量或自定义函数名等,这些符号被称之为标识符。

EL表达式中的标识符可以有任意大小写字母、数字和下划线组成,为了避免出现非法标识符,还要注意遵循以下规范:

  • 不能以数字开头
  • 不能是EL中的保留字
  • 不能说EL隐式对象
  • 不能包含单引号、双引号、减号和正斜杠等特殊字符

保留字

保留字就是编程语言里实现定义好并赋予特殊含义的单词

和其他语言一样EL表达式也定义了许多保留字,具体如下:

and      eq      gt      true      instanc
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值