1. 程式人生 > >EL表示式的語法、EL取四大作用域中的值

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>