EL是JSP中的内置表达式语言
它的作用相当于<%= %>
使用EL表达式来读取4大域
全域查找:
- ${xxx} 使用全域查找来查找属性名为xxx的属性,如果不存在不是输出null,而是输出""(空字符串)
获取指定域中的属性:
- ${pageScope.xxx } :全域查找(相当于 pageContext.getAttribute(“xxx”))
- ${requestScope.xxx } :request域查找(相当于 request.getAttribute(“xxx”))
- ${sessionScope.xxx } :session查找(相当于 session.getAttribute(“xxx”))
- ${applicationScope.xxx } :application域查找(相当于 application.getAttribute(“xxx”))
获取参数:
${param.xxx} :获取参数(相等于request.getAttribute(“xxx”))
${paramValues.x0xx[0] } :(相等于request.getAttributeValues(“xxx”))
${paramValues.x0xx[1] }
${paramValues.x0xx[2] }
获取请求头
${header[‘User-Agent’]} :获取请求头中的User-Agent
通过initParam获取 <context-param>(web.xml中)内的参数
<context-param>
<context-name>xxx</context-name>
<context-value>XXX</context-value>
</context-param>
${initParam.xxx } 相当于获取到了XXX
获取sessionid
${cookie.JSESSIONID.value }
获取项目名
${pageContext.request.contextPath }
所以以后在href、action中使用${pageContext.request.contextPath }来代替项目名,作用是动态获取项目名,这样就不怕改项目名了
---------------------------------------------------------------------------------------------------------------------------------------
url 标签:(需要引入标库)
-
<c:url value="/index.jsp" /> 它会输出 " /项目名/index.jsp "
-
其实它比${pageContext.request.contextPath }要方便一些
比较讨人喜欢的是<c:param name=" " value=" " />,可以给url后面带参数,而且是url编码之后的参数值
例如:
<c:url value"/index.jsp">
<c:param name=" name" value=" 123" />
</c:url>
上面就相当于/项目名/index.jsp?name=%ED%FD%FF%C%A,就类似于加密一样