1、核心標籤庫:java
1> <c:out value=」輸出值」 escapeXML=」布爾值」 default="默認值" />web
在頁面輸出指定值.數組
輸出值能夠是字面量,也能夠是EL表達式的計算結果瀏覽器
若是escapeXML爲true則輸出值字符原樣輸出,若是爲false則對字符串中的特殊字符進行轉換後輸出.服務器
例:cookie
<c:out value="${username}" default="no data"></c:out>
2> <c:set var=」變量名」 value=」變量值」 scope=」page | request | session | application」 />session
在指定的」scope」做用域中定義一個變量,若是不指定scope值,則默認爲pageapp
其中scope的值能夠爲 page | request | session | applicationspa
他們在JSP中對應的內置對象是pageScope | request | session | application.net
例:
<c:set var="username" value="hello" scope="request" />
3> <c:set var=」變量名」 scope=」page | request | session | application」>
變量值
</c:set>
4> <c:remove var="變量名" scope="page | request | session | application" />
用於刪除指定做用域的變量,scope屬性是可選的,表示待刪除變量來自於哪一個做用域,默認爲page。
若是不指定scope,則<c:remove>會從1.page、2.request、3.session以及 4.application中順序尋找是否存在指定名稱的數據。若是找到,則將在找到的範圍內所有刪除,也就是若是有同名的變量存儲在不一樣的範圍內,則這 些變量會所有刪除,而不是僅僅刪除第一個碰見的指定變量。
二、EL表達式:
1> EL中針對四做用域中的內置對象分別爲:pageScope | requestScope | sessionScope | applicationScope
這與JSP的四個內置做用域對象相對應,其類型所有都是java.util.Map類型,可是這4個隱含對象只能用來取得(讀取)某個範圍的屬性值,即JSP中的 getAttribute(String name) ,而不能取得其餘的信息,好比在JSP中的request對象除可以存取屬性外,還能夠用來接收參數和表頭信息。
2> 與輸入相關的兩個內置對象爲:param 和 paramValues
他們對應於JSP中的 request.getParameter(String name) 和 request.getParameterValues(String name)
3> 其餘內置對象:
1.cookie
//服務器端創建Cookie對象 Cookie c = new Cookie("username", "root"); //客戶端取得Cookie中的值 ${cookie.username.value}
注意:這裏必定要加value,不然會顯示javax.servlet.http.Cookie@6f411f,表示取得的是cookie對象地址的toString()方法。
2.header
header用來存儲用戶瀏覽器和服務器用來溝通的數據.當用戶瀏覽器請求服務器的頁面時候,會傳送一個記載信息的表頭文件.而服務器 能夠經過header或者headerValues來取得這些值。其中headeru用來取得同一標頭名稱只有一個值的信息,而headerValues 用來取得同一標頭名稱擁有不一樣的值的信息。
${header.host} ${header["user-agent"]}
3.initParam
initParam用來取得在web站點中設置的環境參數(ServletContext)值.
4.pageContext
它是用來取得有關用戶要求或頁面的詳細信息
取得請求的參數字符串 ${pageContext.request.queryString} 取得請求URL ${pageContext.request.requestURL} 取得web應用名稱 ${pageContext.request.contextPath} 取得HTTP請求方式(GET or POST) ${pageContext.request.method} 取得使用協議 ${pageContext.request.protocol} 取得用戶IP地址 ${pageContext.request.remoteAddr} 判斷Session是否爲新 ${pageContext.session.new} 取得sessionID ${pageContext.session.id}
取得server端信息
${pageContext.servletContext.serverInfo}
參考:http://my.oschina.net/sunjun/blog/9024
2> EL都是經過"[]"與"."運算符來存取數據的:
${applicationScope.user.userName} ${applicationScope.user["userName"]}
3> 可使用EL存取器(也稱做導航)能夠訪問JavaBean、Map、對象數組、List中的數據。
1.使用存取器讀取JavaBean中的數據:
例如:
姓名:${sessionScope.person.name} 年齡: ${sessionScope.person.age} 朋友們: ${sessionScope.person.friends[0]}、${sessionScope.person.friends[2]} friends是一個ArrayList、person是一個JavaBean
2.使用存取器讀取Map中的數據:
三、區別:
JSP中四個內置對象爲:pageScope | request | session | application
JSTL中scope屬性的四個內置對象爲: page | request | session | application
EL表達式中四個內置對象爲:pageScope | requestScope | sessionScope | applicationScope