EL和jstl 1.从session中取数据 User user=(User)session.getAttribute("user") String sex=user.getSex(); 可以替换为 ${sessionScope:user.sex}
2.下面两种情况的.和[]是不能互换的 (1)要存取的数据名称包含了一些特殊字符(不是数字或者字母)时必须使用[] (2)所取的值时动态时(一个变量)必须只能用[]
3.注意判断两个变量相等时 只能${变量1===变量2} 不能写成${变量1}==${变量2}
4.对象的作用域 如果在不同的作用域中有相同名称的对象,这时候要注意系统查找的顺序,页面中此时会按照先page-request-session-applicaion。
(1)同名变量在相同页面的session和application的优先级
这种情况如果当前页面不含有同名变量那么就是针对${param}在不同页面之间的取值的方式的。
如:
test1.jsp
<body> <% session.setAttribute("param1","welcome session page1"); application.setAttribute("param1","welcome application page1"); %> ${param1}<br>
//${param1}这里输出的是welcome session page1,说明同一个页面优先级 session> application </body>
(2)同名变量在不同页面之间的session和application的优先级
test.jsp
<body> <% session.setAttribute("param1","welcome session page1"); %> <a href="test2.jsp">跳转页面</a>
</body>
test2.jsp
<body> <% application.setAttribute("param1","welcome application this page"); %> ${param1}输出的内容是<br>
//这里输出的是welcome session page1,结合(1)说明session或application
优先级(当前页面)application<session </body>
所以综上所诉不管同一个页面或者不同页面优先级application<session
2.不同页面之间优先级page和session的关系
test.jsp
<body> <% session.setAttribute("param1","welcome session page1"); %> <a href="test2.jsp">跳转页面</a>
</body>
test2.jsp
<body> <% session.setAttribute("param1","welcome session this page"); %> ${param1}输出的内容是<br>welcome session this page说明page(当前页面)>session
这里换做application也是一样的结果,出现同名变量都是先从当前页面搜索然后同一个页面中再有session和appliance的优先级。
3.但是对指定了用sessionScope/applicaionScope的session和application之间是无效,(${sessionScope.param}/${applicationScope.param})因为 ${sessionScope.param}/${applicationScope.param}即使param同名也只会取到它们自己对应setAttribute的值。
如
test.jsp
<body> <% session.setAttribute("param1","welcome session page1"); %> <a href="test2.jsp">跳转页面</a>
</body>
test2.jsp
<body> <% application.setAttribute("param1","welcome application this page"); %> ${applicationScope.param1}输出的内容是<br>welcome application this page说明用page ${applicationScope.param1}取值时(当前页面application)>session,同一个session或者application对象用${applicationScope.param1}也是一样的,(当前页面application/session)>application/session。
4.知道还有一个page>request>session>application,知道怎么回事几个一起联系起来好难描述。