在EL中提供有11个隐含对象,其中除了pageContext隐含对象是个JavaBean对象,对应于javax.servlet.jsp.PageContext类型之外,剩下的隐含对象都是对应于java.util.Map类型,所以使用EL隐含对象,
可以让您以字典的方式来取值,例如users.get("Justin")
可以使用users["Justin"]的方式来取得字典"Justin"所对应的数值。 与作用范围相关的EL隐含对象有pageScope、requestScope、sessionScope与 applicationScope,它们分别可以取得使用JSP隐含对象pageContext、request、session与 application的 setAttribute()方法所设定的属性对象,如果不使用EL隐含对象指定作用范围,则默认是取得pageScope的属性。 如果要取得与使用者请求参数数据,则可以使用param或paramValues,举例来说,${ param.user }其作用相当于<%= request.getParameter("user") %>,而paramValues则相当于request.getParameterValues(),可与取得表单多选项的值,由于传回的是多个 值,您可以使用[]运算子来指定取得哪个元素,例如${ paramValues.hobbies[0] }。 如果要取得使用者请求的表头数据,则可以使用header或headerValues隐含对象,例如${ header["User-Agent"] },headerValues则用来取得同一表头所包括的多值,作用相当于request.getHeaders()方法。 cookie隐含对象可以用来取得使用者的Cookie设定值,虽然我们之前没有说明过Cookie的使用,但是其使用方式类似于 session;如果您在Cookie中设定了username属性,则可以使用${ cookie.username }来取得属性值。 initParam可以用来取得JSP网页在web.xml中设定的初始值,例如${ initParam.initCount } 的作用相当于<%= servletContext.getInitParameter("initCount") %>。 pageContext对应于javax.servlet.jsp.PageContext类型,您可以藉由PageContext来取得 request、response、session等对象,从而取得当中的相关讯息,只要是ServletContext中getXXX()方法,就可以 用${ pageContext.xxx }来取得,如果XXX对象有getYYY()方法,则可以用${ pageContext.xxx.yyy }来取得值,例如${ pageContext.request.remoteAddr }可以用来取得HttpServletRequest对象,并使用它的getRemoteAddr()方法来取得使用者的IP位址。 |