您的位置:首页 > Web前端 > JavaScript

JSP模式&EL&JSTL(1)

2017-12-27 13:33 549 查看
EL表达式的概述

1.在JSP开发中,为了获取Servlet域对象中存储的数据,经常要书写很多代码,这样做会使jsp页面混乱,难以维护,为此,JSP2.0版本中提供了EL表达式,它是一种简单的数据访问语言

什么是EL

1.EL可以简化JSP的书写方式,因此在JSP学习中,掌握EL是相当重要的,使用EL首先要学习EL表达式.首先要学习它 的语法.EL表达式很简单,都是从”${“符号开始的,”}”结束的具体格式如下

${表达式}


2.EL的使用:内置对象
内置对象名称
pageScope    page作用域
requestScope    request作用域
sessionScope    session作用域
applicationScope    application作用域
param    获取一个参数
paramValues    获取一组参数
header   获得一个请求头
headerValues    获得一组请求头
pageContext  JSP上下文对象
initParam   全局初始化参数
cookie    cokkie


获得指定作用域对象

<%--初始化数据--%>
<%
pageContext.setAttribute("name","pValue");
session.setAttribute("name","sValue");
request.setAttribute("name","rValue");
application.setAttribute("name","aValute");
%>
<%--使用jsp脚本获取数据--%>
<%=pagetContext.getAttribute("name")%><!-- 没有找到返回null -->
<%=session.getAttribute("name")%>
<%=request.getAttribute("name")%>
<%=application.getAttribute("name")%>
<% s使用EL表达式%>
${pageScope.name}<!-- 返回的是"" -->
${requestScope.name}
${sessionScope.name}
${applicationScope.name}
<%--依次获得数据--%>
${name}<!--底层使用 pageContext.getAttribute("name"),依次从page,request,session,application获取,如果没有返回null如果找到就立马停止查询-->


请求参数

//请求路径:/项目名/index.jsp?username=admin&hobby=chouyan&hobby=hejiu
<%--
param.xxx  对应 request.getParamter("xxx");
params.xxx 对应 request.getParamters("xx");
--%>
<%
${param.username}<br/>
${param.hobby}<br/><%--获取第一个参数--%>
${paramValues.hobby}<br/><%--获取一个数组--%>
${paramValues.hobby[1]}<%-如果是数组,用下标获取-%>
%>


请求头

<%--
header.xxx  对应request.getHeader("xxx");
headerValues.xxx 对象request.getHeaders("xxx");
--%>
${header.acept}<br/>
${header.accept-Encoding}<br/><%--非法的,有异常的,"-"被解析成减号.使用"/"进行单个EL表达式转义--%>
${header['accept-Encoding']}<br/>
${headerValues['accept-Encoding'][0]}


pageContext

<%--
pageContext对应pageContext对象
jsp:<%=((HttpServletRequest)pageContext.getRequest).getContextPath%><br/>
EL:${pageContext.request.contextPath}
--%>


cookie

<%--
cookie没有对应的api.底层使用request.getCookies()获取所有的cookie,然后遍历放到Map中Map<name,obj>
-%>
${cookie}</br><%--获取所有cookie Map存储--%>
${cooke.company}<%--map.key对应的Value--%>
${cookie.company.name}<%--通过JavaBean 属性获得属性,获得cookie的名称,对应方法getName()--%>


“.”和”[]”的区别

1) []用于有下标的数据(数组,集合) .用于有属性的数据(map,对象)
2) 如果属性名中包含有特殊的字符.必须使用[]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: