使用servlet中的四大作用域来设置获取值
<%
pageContext.setAttribute("msg", "yetong");
session.setAttribute("msg", "yetong1");
application.setAttribute("msg", "yetong2");
request.setAttribute("msg", "yetong3");
%>
当我们需要在jsp中获取四大作用域中的共享数据时,可以通过内置对象来获取
<%=pageContext.getAttribute("msg") %>
<%=session.getAttribute("msg")%>
<%=application.getAttribute("msg")%>
<%=request.getAttribute("msg")%>
而pageContext.findAttribute(String name)方法可以实现自动按照范围的从小到大一次从page、request、session、application(ServletContext)寻找制定名的属性值。
<%=pageContext.findAttribute("msg")%><--! 会获取到pageContext中的值,因为pageContext 的作 用域最小-->
在开发中有时我们会有如下的需求。
若从作用域中获取指定属性值时,有值显示值,无值显示空字符串(默认显示null)
使用jsp内置对象来写的话可以写成以下的形式:
<%=pageContext.findAttribute("msg") == null ? "": pageContext.findAttribute("msg")%>
而这个等价于EL中的
${msg}
其中的语法:
在EL中访问javabean属性方式:
方式一:使用 . 来访问
方式二:使用["name"]来访问
${属性名} 或则是${"属性名"}
${对象.属性名}=====对象.getXxxx,注意属性必须提供getter方法
若操作是map对象则:${map.key}
若要获取指定的作用域的指定
${pageScope.}或者${pageScope[" "]}
${requestScope.}或者${requestScope[" "]}
${sessionScope.}或者${sessionScope[" "]}
${applicationScope.}或者${applicationScope[" "]}
Tomcat7开始,EL不仅支持属性访问,还支持使用方法