范围:el表达式取值必须是servlet四大作用域,由小到大排列为pageContext<request<session<servletContext
取值顺序:EL表达式会自动从四大域中按作用范围从小到大寻找对应名字的值
原理:这四个域都有setAttribute("",object)方法和getAttribute("")方法,其内部调用的就是pageContext的findAttribute("")方法,如果要想在页面通过EL表达式得到值就必需先调用域的setAttribute方法把值设置进去
例
pageContext.setAttribute("name", "张三");//page域
request.setAttribute("name", "李四"); //request域
session.setAttribute("name", "王五");//session域
application.setAttribute("name", "赵六");//Context域
输出
输入结果:
1.获取page域的“张三”;
2.如果没有,获取request域的“李四”;
3.如果没有,获取session域的“王五”;
4.如果没有,获取Context域的“赵六”。
附:
所以获取session中的值的方式有
${sessionScope.user.name}
或
${user.name}
model是request级别的