EL工具包介绍
由Java技术开发一个jar包
作用:降低JSP文件开发时Java命令开发强度
Tomcat服务器本身自带了EL工具包(Tomcat安装地址/lib/el-api.jar)
JSP相关知识本文中有JSP规范的相关介绍
EL表达式
1.命令格式:${作用域对象别名.共享数据}
2.命令作用:
1)EL表达式是EL工具包提供一种特殊命令格式【表达式命令格式】
2)EL表达式在JSP文件上使用
3)执行时从指定的【作用域对象】中读取指定【共享数据】的内容并自动的写入到响应体
EL表达式作用域对象别名
1.JSP文件可以使用的作用域对象
1) ServletContext application: 全局作用域对象
2) HttpSession session: 会话作用域对象
3) HttpServletRequest request: 请求作用域对象
4) PageContext pageContext: 当前页作用域对象
这是JSP文件独有的作用域对象。Servlet中不存在
在当前页作用域对象存放的共享数据仅能在当前JSP文件中使用,不能共享给其他Servlet或则其他JSP文件
真实开发过程,主要用于JSTL标签与JSP文件之间数据共享数据
JSTL------->pageContext---->JSP
2.EL表达式提供作用域对象别名
JSP EL表达式
application ${applicationScope.共享数据名}
session ${sessionScope.共享数据名}
request ${requestScope.共享数据名}
pageContext ${pageScope.共享数据名}
下面用代码演示一下分别使用java代码和EL表达式在JSP中实现共享数据的读取
Servlet
public class OneServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//分别将共享数据添加到作用域对象
//全局作用域对象
ServletContext application=request.getServletContext();
//会话作用域对象
HttpSession session=request.getSession();
application.setAttribute("sId",10);
session.setAttribute("sName","mike");
request.setAttribute("home","北京");
//通过请求转发的方式调用index_1.jsp,由index_1.jsp负责将作用域对象共享数据读取并写入响应体中
request.getRequestDispatcher("/index_1.jsp").forward(request,response);
}
}
使用Java代码读取共享数据
<%
//读取全局作用域对象中的共享数据
Integer sId=(Integer) application.getAttribute("sId");
//读取会话作用域对象中的共享数据
String sName=(String)session.getAttribute("sName");
//读取请求作用域对象中的共享数据
String home=(String)request.getAttribute("home");
%>
sId:<%=sId%><br/>
sName:<%=sName%><br/>
home:<%=home%><br/>
使用EL表达式
学员Id:${applicationScope.sId}<br/>
学员姓名:${sessionScope.sName}<br/>
学员地址:${requestScope.home}<br/>
很明显EL表达式简化了在JSP文件中读取共享数据的步骤
EL表达式将引用对象属性写入响应体中
1.命令格式: ${作用域对象别名.共享数据名.属性名}
2.命令作用: 从作用域对象读取指定共享数据关联的引用对象的属性值。并自动将属性的结果写入到响应体
3.属性名: 一定要去引用类型属性名完全一致(大小写)
4.EL表达式没有提供遍历集合方法