##MVC(Modle View controller):开发模式
1. JSP的演变历史
1. 早期只有servlet,只能使用response输出标签数据,非常麻烦
2. 后来有JSP,简化了servlet的开发,如果过度使用JSP,在大量的html和Java混合后,会造成后期难以维护,难以分工合作
3. 再后来,Java的web开发,借鉴mvc开发模式,使得程序的设计更加合理性
2. MVC:
1. M: modle ,模型 :JavaBean
1. 业务逻辑操作,如:数据查询,封装对象
2. V: View ,视图 :jsp
1. 展示数据
3. C: Controller ,控制器:Servlet
1. 获取客服端的输入
2. 调用模型
3. 将数据交给视图展示
* 优缺点:
* 优点:
1. 耦合性低,方便维护,便于分工合作
2. 重用性高
* 缺点:
* 使项目结构变复杂,对开发人员要求高,不适于小型项目
##EL表达式:
1. 概念:Expression Language 表达式语言
2. 作用:替换个简化JSP页面中的Java编写
3. 语法:${表达式}
4. 注意:
1. JSP默认支持EL表达式。如果要忽略EL表达式
1. isELIgnored :设置为true,就忽略EL表达式
2. \${表达式}也可以忽略当前EL表达式
5. 使用
1. 运算:
1. 运算符
1. 算术运算符:+ - * /(div) %(mod)
2. 比较运算符:< > <= >= == !=
3. 逻辑运算符:&&(and) ||(or) !(not)
4. 空运算符: empty
* 功能:判断字符串,集合,数组对象是否为null或者长度是否为0
* ${empty list}
* ${not empty list}:判断字符串,集合,数组对象是否不为null或者长度是否大于0
2. 获取值:
1. EL只能从域对象中获取值
2. 语法:
1. ${域名城.键名}:从指定域中获取指定键的值
* 域名称:
* pageScope ——————> pageContext
* requestScope ——————> request
* sessionScope ——————> session
* applicationScope ————> appliction(ServletContext)
2. ${键名}:表示从最小范围的域中开始寻找是否有该键对应的值,直到找到键名,没有找到就不输出
3. 获取对象、list集合、Map集合中的值
1. 通过对象的属性来获取:${域名称.键名.属性名}
* 对象的属性是其getter或setter方法去掉get或set将剩下的首字母小写,剩下的就是其属性。
* 本质就是调用对象的getter方法
2. 获取List集合里的值:${域名称.键名[索引]}
3. 获取Map集合里的值:${域名称.键名.key名称}或者 ${域名.键名["key名称"]}
3. 隐式对象:
1. EL表达式中有11个隐式对象
* pageContext:
1. 获取其他八个内置对象
## JSTL
1. 概念:JavaServer Pages Tag Library JSP标准标签库
* 是由Apache组织提供的开源的免费的JSP标签
2. 作用:用于简化和替换JSP页面上的Java代码
3. 使用步骤:
1. 导入jstl相关jar包
2. 映入标签库 taglib指令:<%@ taglib perfix="c" url=""%>
3. 使用标签
4. 常用的JSTL标签
1. if :相当于Java代码的if语句
1. 属性:
* test :必须属性,接受boolean表达式
* 如果为true,则显示标签体的内容,如果为false,则不显示标签体的内容
* 一般test的属性值会结合EL表达式来使用
2. 注意:标签内没有else判断,如果需要则在添加一个if标签
2. choose:相当于Java代码的switch语句
1. choose相当于switch
2. when相当于case
3. otherwise相当于default
3. foreach:相当于Java代码的for语句
1. 完成重复的操作
1. 属性:
* begin:开始值
* end: 结束值
* var:临时变量
* step:步长
* varStatus:循环状态对象
* index:容器中元素的索引,从零开始--指的是高级for循环
* count:循环次数,从1开始
2. 遍历容器
1. 属性
* items:容器对象
* var:容器中元素的临时变量
* varStatus:循环状态对象
* index:容器中元素的索引,从零开始
* count:循环次数,从1开始
|
|