EL表示式的語法、EL取四大作用域中的值
阿新 • • 發佈:2019-01-09
<%@ 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>