EL&JSTL

1.1 EL概述

什么是EL:EL(Expression Language)出现的目的:为了使JSP写起来更加简单。

EL语法:${表达式}

 

1.2 EL获取域中的数据

1.2.1获取简单的数据

${pageScope|requestScope|sessionScope|applicationScope.属性名}

1.2.2获取复杂的数据

(1)获取数组:

${pageScope|requestScope|sessionScope|applicationScope.属性名[index]}

(2)获取list集合

${pageScope|requestScope|sessionScope|applicationScope.属性名[index]}

(3)获取map集合

${pageScope|requestScope|sessionScope|applicationScope.属性名.键名}

便捷方式:${属性名} 依次从小到大pageContext、request、session、application获取指定名称的属性,找到了则返回,找不到返回””(即空字符串) 弊端:一旦属性名中出现了“.”、“+”、“-”等特殊符号的时候,必须使用${xxxScope[属性名]}获取,若使用便捷查找则会报错。

1.2.3获取对象属性值

定义一个类

获取方式:${对象名.属性}

 

1.3 EL执行运算

(1) +  -  *  /  (el里面表达式可以做运算)

注意:+、-、*、/ 只用来做运算,不能用于字符串拼接,无论是整数还是字符串,如果字符串双引号里不是数值,运算则会报错

(2)支持比较运算符>、>=、<、<=、!=、==、&&、||、!

(3)支持三元运算符  条件表达式?值1:值2

(4)empty(掌握)   not empty是取反

判断字符串是否为””

如果字符串为””,则返回true;如果字符串不为””,返回false

判断一个容器的长度是否为0

如果容器长度为0,返回true;如果容器长度不为0,返回false

判断一个对象是否为空

如果对象为null,返回true;如果对象不为null,返回false

 

1.4 EL内置对象:

 

分类

内置对象名称

描述

作用域

pageScope

page作用域

requestScope

Request作用域

sessionScope

session作用域

applicationScope

application作用域

JSP上下文对象

pageContext

获取当前项目名称路径${pageContext.request.contextPath}

cookie

cookie

直接能获取指定cookie

${cookie.名称.value}

请求参数

param

获得一个参数

paramValues

获得一组参数

请求头

header

获得一个请求头

headerValues

获得一组请求头

全局参数

initParam

全局初始化参数

 

1.5 jstl标签库

从JSP1.1规范开始,JSP就支持使用自定义标签,使用自定义标签大大降低了JSP页面的复杂度,同时增强了代码的重用性。

JSTL虽然被称为标准标签库,而实际上这个标签是由5个不同功能的标签库共同组成的。

jstl的分类:

core 核心(if-判断、forEach-循环)

fmt 国际化或者格式化(不学了)

sql 和SQL相关的(过时了)

xml 和XML相关的(过时了)

函数库(不学了)

jstl是jsp标准的标签库语言---在jsp上使用jstl标签要引入标签库。

jstl的使用步骤:

(1)导入jar包(两个jar包: jstl.jar和standard.jar)

(2)在页面上导入标签库

<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

prefix属性用于指定引入标签库描述符文件的前缀,在jsp文件中使用这个标签库中的某个标签时,都需要使用这个前缀;uri属性用于指定引入标签库描述符文件的URI。

 

1.6 Core标签库:if标签

语法格式:    

<c:if test="el表达式" [var="变量名"]>

标签体(条件成立的时候输出的内容)

</c:if>

test属性用于设置逻辑表达式,var属性用于指定逻辑表达式中变量的名字(可省略不写);test的计算结果为true才会执行标签体。

 

1.7 Core标签库:forEach标签

语法格式1:

<c:forEach begin="开始" end="结束" step="循环的间隔数" var="给变量起个名称" varStatus="记录循环状态">

${变量名 }

</c:forEach>

注意事项:

varStatus的常用属性:

count---记录当前是第几个,从1开始

Index---表示当前元素在集合中的索引,从0开始

first---判断当前元素是否为第一个

last---判断当前元素是否为最后一个

例如:

<c:forEach begin="1" end="10" step="1" var="i">

${i }

</c:forEach>

语法格式2:高级

<c:forEach items="${el表达式}" var="变量名">

${变量名}

</c:forEach>

 

1.8 MVC设计模式

MVC(Model-View-Controller)是软件工程中的一种软件架构模式,它是一种分离业务逻辑与显示界面的设计方法。它把软件系统分为三个基本部分:模型(Model)、视图(View)、控制器(Controller)。

控制器(Controller):对请求进行处理,负责请求转发。

视图(View):界面设计人员进行图形界面设计。

模型(Model):编写程序应用的功能(实现算法等等)、数据库管理。

MVC可对程序的后期维护和扩展提供了方便,并且使程序某些部分的重用提供了方便,而且MVC也使程序简化,更加直观。

注意:MVC不是java特有的,几乎现在所有B/S结构的软件都采用了MVC设计模式。

 

1.9 JSP开发模式

JavaWeb经历了JSP model1第一代、JSP model1第二代、JSP model2三个时期。

JSP model1第一代:服务器端只有JSP页面,所有的操作都在JSP页面中,连访问数据库的API也在JSP页面中完成。也就是说,所有的东西都耦合在一起,对后期的维护和扩展极为不利。

JSP model1第二代:业务逻辑的内容放到JavaBean中,而JSP页面负责显示以及请求调度的工作。虽然第二代比第一代好了一些,但还让JSP做了过多的工作,JSP中把视图工作和请求调度(控制器)的工作耦合在一起了。

JSP model2使用到的技术有Servlet、JSP、JavaBean。model2是MVC设计模式在java语言的具体体现。

(1) JSP:视图层,用来与用户打交道,负责接收servlet传递过来的数据,以及显示数据给用户。

(2) Servlet:控制层,负责找到合适的模型对象来处理业务逻辑,转发到合适的视图。

(3) JavaBean:模型层,完成具体的业务工作。

 

1.10三层架构

JSP模式是理论基础,但实际开发中,常将服务器端程序,根据逻辑进行分层。一般比较常见的是分为三层,称为经典三层体系架构。分别是表示层、业务逻辑层、数据访问层

(1)表示层:又称为web层,与浏览器进行数据交互。

(2)业务逻辑层:又称为service层,专门用于处理业务数据。

(3)数据访问层:又称为dao层,与数据库进行数据交互,将数据库的一条记录与JavaBean进行对应。

 

转载于:https://my.oschina.net/jinyeyaonitian/blog/826811

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值