原理
EL 全名为Expression Language。语法: 以 {} 以 以{为起始、以}为结尾,比如:${sessionScope.user.sex},的意思是:从Session的范围中,取得用户的性别。
主要作用:
- 获取数据: EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象、获取数据。(某个web域 中的对象,访问javabean的属性、访问list集合、访问map集合、访问数组)
- 执行运算:利用EL表达式可以在JSP页面中执行一些基本的关系运算、逻辑运算和算术运算,以在JSP页面中完成一些简单的逻辑运算。${user==null}
- 获取web开发常用对象: EL 表达式定义了一些隐式对象,利用这些隐式对象,web开发人员可以很轻松获得对web常用对象的引用,从而获得这些对象中的数据。
- 调用Java方法:EL表达式允许用户开发自定义EL函数,以在JSP页面中通过EL表达式调用Java类的方法。
${pageScope.k}
${requestScope.k}
${sessionScope.k}
${applicationScope.k}
${k}
示例:
Servlet
@WebServlet("/demo")
public class DemoServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//this指当前类的对象
//this.getServletContext这个方法的返回值对象就是application对象
ServletContext application = this.getServletContext();
application.setAttribute("k","application");
//获取Session对象
HttpSession session = request.getSession();
session.setAttribute("k","session");
request.setAttribute("k","request");
request.getRequestDispatcher("demo.jsp").forward(request,response);
}
}
页面
Title
${k}
${pageScope.k}
${requestScope.k}
${sessionScope.k}
${applicationScope.k}