四大作用域
基本简介:
page,request,session,application。
四大作用域的优先级:
page>request>session>application(注意,此优先级只表示在当前的页面,涉及页面的跳转时,page作用域可以忽略不算入其中)。
page:page作用域是优先级最高的作用域,当然只包括当前的页面。
它和其他三个作用域有点不同,如果你想在此作用域中存数据,就只能用pagecontext来调用存储数据的方法:pagecontext.setAttribute(“要存储的数据的名字”,要存储的数据对象)。
request:request作用域是jsp八大内置对象的其中一个,它存储数据的方法和上面的一样,
request.setAttrbute(“要存储的数据的名字”,要存储的数据对象).
session:session作用域的存储数据的方法也和上面两个作用域一样,不过值得注意的是,session作用域的特性之一:它是存储在数据库中的,关闭会话才能结束它的生命周期,当然有些时候项目测试达不到预期时可能是session作用域还没结束,导致获取的是同一个对象。
application:application作用域是范围最广的一个作用域,它也是优先级最低的一个作用域。
这里总结一下,四大作用域的获取值的方法也是一样的,还有就是如果你的四大作用域中同时有同一个sa对象时,通过EL表达式获取属性时,会一个一个作用域中查找sa对象,当然,也是通过上图的优先级获取的。
作用域对象.getAttribute(“存储数据的名字”)。
EL表达式
el表达式可以帮助我们在开发web和jsp项目时实现前端代码和后端代码分离。
el表达式的语法:
${EL exprission} ${bean.name} ${bean['name']}
值得注意的是,EL表达式获取对象时其实时调用getName()方法的,如果你实体类里面没有getName()方法时是没办法通过EL表达式获取属性的。
EL表达式可以和作用域一起使用,当然也可以获取集合,${作用域+Scope.user[要查找的对象的下标]}
这里是EL表达式对隐式对象的小结,可以看下就行了。
这里说明一下,EL表达式可以做一些简单的关系判断,但是不能做逻辑运算,比如if,for循环等,不过可以和JSTL结合来实现。
JSTL
JSTL是jsp标准标签库,它通常会和EL表达式合作实现jsp页面中的逻辑处理。
set,remove,out这些标签都是一般不常用的,但是也要了解下。
首先想使用JSTL就要先导入jar包,
上图是JSTL的一些常用的标签
想用JSTL这一串代码必不可少,当然prefix=“中间的名字随便取”,不过后面的uri是不能出错的。
好了,小编就总结到这了。