四十七章 ---- EL和JSTL
01-简易的Tomcat
02-搭建了web环境和初识JSP
03-JSP的内置对象(request response session application)
04-数据源和分层(查询新闻列表、新增新闻、删除新闻)
JNDI和连接池
三层架构:
表现层:接收请求,并对请求做出响应
业务逻辑层:处理业务逻辑(删除新闻)
数据访问层:用于和数据进行直接交互(DAO模式)
05-第三方控件(commons-fileupload 和富文本编辑器)
06-分页技术(改造:首页分页 、管理员列表的分页)
07-分页功能完善和页面拆分
一、掌握使用EL表达式优化JSP页面显示
1.EL的概述
<%
Object obj = request.getAttribute("categoryList");
// 使用集合
if(obj != null){
List<category> categoryList = (List<category>)obj;
}
%>
// 现在需要:
// ${categoryList} ${requestScope.categoryList}
// ${not empty categoryList} 判断不为空
--------------------------------------------------------
<%
// 取出来信息 获取一个对象
User user = (User)session.getAttribute("loginUser");
// 假设不能为空:取出用户的数据
user.getUserName();
user.getUserPassword();
%>
// ${loginUser}
// ${loginUser.userName}
// ${loginUser.userPassword}
EL(Expression Language)
作用: 它是JSP中专门用于从四大作用域中
取数据的一种表达式语言。
四大作用域:(用来存储数据 本质上都是集合)
- page:存储的数据只能在当前JSP页面使用
- request:存储的数据只能在一次请求中有效(请求转发可以保证请求不会冲刺你发起)
- session:存储的数据只能在同一个会话中有效(只要浏览器不完全关闭,都属于一个会话,其他利用的cookie技术)
- application:存储的数据可以在整个应用中都有效(服务器开启则可以使用,关闭则自动销毁)
2.EL的基本语法
从作用域中取出变量数据
${
作用域中的变量名}
例如:request.setAttribute("username","赵经理");
取数据:${
username}
// EL在取数据时,如果查找不到,则默认不显示,不像之前的getAttribute()系列返回null
// 完整写法
${
pageScope.键名}
${
requestScope.键名}
${
sessionScope.键名}
${
applicationScope.键名}
// 当前用上方的简写形式时,他会默认从 page - request - session - application 依次查找数据(范围小->范围大)
3.EL操作各类型数据
-
EL操作数组:
例如${nameArr[索引]}
-
El操作对象
可以使用.来获取对象的属性,也可以使用[] ,实质上调用的还是get/set方法
用户名:${
loginUser.username}