EL表达式的语法、EL取四大作用域中的值
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%--
${key} : 到四大作用域里面去找到key对应的value
它查询找的顺序 -> 从小至大
注意四大作用域设值时的命名规范 KEY_IN_SESSION/KEY_IN_APP
--%>
<%-- JSP中部应该写java代码,下面只是为了测试方便查看 --%>
<%
application.setAttribute("KEY_IN_APP", "我是application中的内容");
session.setAttribute("KEY_IN_SESSION", "我是session中的内容");
request.setAttribute("KEY_IN_REQUEST", "我是request中的内容");
pageContext.setAttribute("KEY_IN_REQUEST", "我是pageContext中的内容");
String name = "aaaa";
%>
${empty KEY_IN_APP} <%-- 判断作用域是否为空 --%>
<%=name %> <br> <%-- 拿到name的值 --%>
application:${KEY_IN_APP} <br>
session:${KEY_IN_SESSION} <br>
request:${KEY_IN_REQUEST} <br>
pageContext:${KEY_IN_REQUEST} <br>
<%--
测试使用EL表达式从四大作用域中取值的顺序
pageContext,request,session,application
--%>
<%
application.setAttribute("msg", "我是application中的内容");
session.setAttribute("msg", "我是session中的内容");
request.setAttribute("msg", "我是request中的内容");
pageContext.setAttribute("msg", "我是pageContext中的内容");
%>
application:${msg} <br>
session:${msg} <br>
request:${msg} <br>
pageContext:${msg} <br>
<%-- 在作用域范围我们的名字取成一样了,怎么去找到特定的一个作用域中的值呢?? --%>
${pageScope.msg}
${requstScope.msg}
<%-- session比较特别,因为session是存在浏览器中的,只有关闭浏览器之后才可以拿到后面作用域中的值 --%>
${sessionScope.msg}
${applicationScope.msg}
<%--
EL表达式使用的细节测试
${pageContext.request.contextPath} 获取上下文路径
作用:Tomcat项目配置,有时候会加上上下文路径,以后会涉及到我们修改上下文路径,当我们进行修改的时候,
就需要把页面上所有的连接全改了,为了避免每次都要全部修改。就可以使用下面这种方式拿到上下文路径。
--%>
<a href="${pageContext.request.contextPath}/save"></a>
${pageContext.request.contextPath}
</body>
</html>