param 獲取 Parameter參數
<c:choose>
<c:when test="${empty param.name}">
Please enter your name.
</c:when>
<c:otherwise>
Hello <b><c:out value="${param.name}" /></b>!
</c:otherwise>
</c:choose>
一般而言,我們在取得用戶的請求參數時,可以利用下列方法:
request.getParameter(String name)
request.getParameterValues(String name)
在EL中則可以使用param和paramValues兩者來取得數據。
${param.name}
${paramValues.name}可以取得所有同名參數的值
${paramValues.hobbies[0]}可以通過指定下標來訪問特定的參數的值
獲取訪問路徑
${pageContext.request.contextPath}
等同於
<%=request.getContextPath()%>
獲取Session
${sessionScope.user.sex}
上述EL範例的意思是:從Session取得用戶的性別。
如果使用之前JSP代碼的寫法如下:
<%
User user = (User)session.getAttribute(”user”);
String sex = user.getSex( );
%>
EL的隱含對象
EL也可以使用內置對象中設置的屬性,需要使用特定的EL內置對象
屬性範圍 | 在EL中的對象
Page | pageScope
Request | requestScope
Session | sessionScope
Application | applicationScope
EL中使用內置對象的屬性
${requestScope.user}
等價於
<%request.getAttribute(”user”)%>
如果不寫出特定的範圍 ,那就會在不同的範圍間進行搜索了
例:{user}(user是在request範圍 request.setAttribute(”user”,user))
也就等於
${requestScope.user}
<%request.getAttribute(”user”)%>
pageContext對象
我們可以使用 ${pageContext}來取得其他有關用戶要求或頁面的詳細信息。下面列出了幾個比較常用的部分。
Expression 說 明
${pageContext.request} |取得請求對象
${pageContext.session} |取得session對象
${pageContext.request.queryString} |取得請求的參數字符串
${pageContext.request.requestURL} |取得請求的URL,但不包括請求之參數字符串
${pageContext.request.contextPath} |服務的web application的名稱
${pageContext.request.method} |取得HTTP的方法(GET、POST)
${pageContext.request.protocol} |取得使用的協議(HTTP/1.1、HTTP/1.0)
${pageContext.request.remoteUser} |取得用戶名稱
${pageContext.request.remoteAddr } |取得用戶的IP地址
${pageContext.session.new} |判斷session是否爲新的,所謂新的session,表示剛由server產生而client尚未使用
${pageContext.session.id} |取得session的ID
${pageContext.servletContext.serverInfo}|取得主機端的服務信息