# MVC&EL&JSTL
## MVC开发模式
1.jsp演变历史
1.早期只有Servlet,只能用response中输出标签数据,麻烦
2.有了jsp以后,简化了Servlet的开发,但过度使用jsp,在jsp中既写大量的java代码又写html标签,难于维护,难于分工协作
3.java的web开发,借鉴mvc开发模式,使得程序更加合理
2.MVC:
1.M:Model,模型
* 完成具体的业务操作,如:查询数据库
2.V:View:视图
* 展示数据
3.C:Controller,控制器
1.获取用户的输入
2.调用模型
3.将数据交给视图进行展示
#### 优缺点:
优点:
1.耦合性低,方便维护,利于分工协作
2.重用性高
缺点:
1.使得项目架构变得复杂,对开发人员要求高
## EL表达式
1.概念:Expression Language 表达式语言
2.作用:替换和简化JSP页面中Java代码的编写
3.语法:
```jsp
${表达式}
```
4.注意:JSP默认支持EL表达式
如果要忽略EL表达式:
1.设置JSP中Page中的指令
```
isELIgnored="true"
```
忽略当前jsp页面中所有的el表达式
2.
```
\${表达式} 忽略当前这个el表达式
```
**5.运算:**
运算符:
1.算数运算符:
```
+ - * /(div) %mod
```
2.比较运算符:
```
> < >= <= != ==
```
3.逻辑运算符:
```
&&(and) ||(or) !(not)
```
4.空运算符
```
empty
```
功能:用于判断字符串,集合,数组对象是否为null并且长度是否为0
**获取值**
1.el表达式只能从域对象中获取值
2.语法:
```
${域名称.键名称} :从指定域中获取指定键的值
```
1.域名称:
```
pageScope -->pageContext
requestScope -->request
sessionScope -->session
applicationScope-->application()
```
2.
```jsp
${键名}:表示依次从最小的域中查找是否有该键对应的值,直到找到为止
```
```
${域名称.键名.对象名}获取对象
${键名.对象名.属性名}获取对象的属性名
属性:getter和setter方法中get后面的字符串,首字母变成小写的就是属性. 如getName(),name就是属性
```
**获取list集合的值**
```
${域名称.键名[索引值]}
```
**获取map集合的值**
```
${域名称.键名.key名}
${域名称.键名["key名称"]}
```
empty运算符
```
功能:用于判断字符串,集合,数组对象是否为null并且长度是否为0
${empty list}
${not empty str}判断字符串,集合数组对象是否不为null并且长度不为0
```
3.隐式对象
共11个
pageContext,用于获取其他八个jsp内置对象
```
pageContext.内置对象名
```
## JSTL
**概念**:JavaServer Pages Tag Library JSP标准标签库
是由Apache阻止提供的开源的免费的jsp标签
**作用**:用于简化和替换jsp页面上的java代码
**使用步骤**:
1.导入jstl相关jar包
2.引入标签库:taglib指令: <%@ taglib %>
3.使用标签
**常用的JSTL标签**
1.if 相当于java代码的if语句
1.属性:test为必须属性
2.choose 相当于Java代码的switch语句
3.foreach
EL表达式的核心作用:从域对象中获取值 |
|