响应式网站项目/搜狗识图
动态页面技术(二)
1.EL 表达式概述
EL(Express Lanuage)表达式可以嵌入在jsp页面内部,减少jsp脚本的编写,EL出现的目的是要替代jsp页面中脚本的编写。
2.EL 从域中取出数据(EL最重要的作用)
jsp脚本:<%=request.getAttribute(name)%>
EL表达式替代上面的脚本:${requestScope.name}
EL最主要的作用是获得四大域中的数据,格式${EL表达式}
EL获得pageContext域中的值: ${pageScope.key};
EL获得request域中的值: ${requestScope.key};
EL获得session域中的值: ${sessionScope.key};
EL获得application域中的值: ${applicationScope.key};
EL从四个域中获得某个值${key}; -->同样是依次从pageContext域,request域,session域,application域中获取属性,在某个域中获取后将不在向后寻找。
代码:
<!-- 模拟域中的数据 -->
<%pageContext.setAttribute("company", "ACM实验室");//存储字符串request.setAttribute("company", "张衡教学楼");//存储一个对象User user = new User();user.setId(1);user.setName("zhangsan");user.setPassword("123");session.setAttribute("user", user);//存储一个集合List<User> list = new ArrayList<User>();User user1 = new User();user1.setId(2);user1.setName("lisi");user1.setPassword("123");list.add(user1);User user2 = new User();user2.setId(3);user2.setName("wangwu");user2.setPassword("123");list.add(user2);application.setAttribute("list", list);
%><!-- 脚本法是取出域中的值 --><%=request.getAttribute("company") %><%User sessionUser = (User)session.getAttribute("user");out.write(sessionUser.getName());%><!-- 使用EL表达式获得域中的值 -->${requestScope.company }${sessionScope.user.name }${applicationScope.list[1].name}<!-- 使用el表达式 全域查找 -->${company }${user.name }${list[1].name}
3.EL的内置对象11个
pageScope,requestScope,sessionScope,applicationScope - 获取JSP中域中的数据
param,paramValues - 接收参数,相当于request.getParameter() rrquest.getParameterValues()
header,headerValues - 获取请求头信息,获取请求头信息相当于request.getHeader(name)
initParam - 获取全局初始化参数,相当于this.getServletContext().getInitParameter(name)
cookie - WEB开发中cookie,相当于request.getCookies()---cookie.getName()---cookie.getValue()
pageContext - WEB开发中的pageContext,pageContext获得其他八大对象
获得:项目名(上下文),这句代码不能实现获得WEB应用的名称。
获取项目的绝对路径和端口号:
<%String path = request.getContextPath();String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
4.EL执行表达式
例如:
<!-- el可以执行表达式运算 -->
${1+1 }
${1==1?true:false }
<!-- empty 判定某个对象是否是null 是null返回true -->
${empty list}