参考链接: Java中的字符串使用switch
<%@ taglib uri="/WEB-INF/tld/c.tld" prefix="c" %>
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}|取得主机端的服务信息