Java中的对象必须先实例化再用:分配内存空间
在JSP中,由WEB容器对对象进行实例化
常见对象及作用域:
对象名 | 类型 | 作用域 |
request | javax.servlet.ServletRequest的子类 | Request |
response | javax.servlet.ServletResponse的子类 | Page |
pageContext | javax.servlet.jsp.PageContext | Page |
session | javax.servlet.http.HttpSession | Session |
application | javax.servlet.ServletContext | Application |
out | javax.servlet.jsp.JspWriter | Page |
config | javax.servlet.ServletConfig | Page |
page | java.lang.Object | Page |
exception | java.lang.Throwable | Page |
!!最重要的概念:四种属性的保存范围
- 设置属性:Public abstract Void setAttribute(java.lang.String name,java.lang.Object attribute) ★★属性名称为字符串、属性值可以为任意对象
- 取得属性:Public abstract Void setAttribute(java.lang.String name)
四种属性保存范围:
- 在一个页面范围内 :page
- 在一次服务器请求范围内:request
- 在一次会话范围内:session
- 在一个应用服务器范围内:application
page范围:
- 在jsp中设置一个页的属性范围必须通过pageContext完成
- pageContext属性范围是最为重要的JSP属性之一,但是如果使用纯粹的JSP代码开发,则此属性显示不出用处
request范围★:
- 将属性保存在一次请求范围内的前提是,必须使用服务器端跳转
- 应用点:MVC设计模式、Struts、Webwork
session范围:
- 只保留一个用户的信息
- 只要设置了属性,则不管是什么跳转都可以取得属性
- 与session有关的任何打开页面都可以取得session
- ★session的主要功能:用于验证用户是否登陆
application范围:
- 只要设置一次则所有的网页窗口都可以取得数据
- 如果要释放application资源只能重新启动服务器
- 应用点:在线人员统计、在线人员名单列表
application、session、request都需要跨多个页
保持性能不降低的原则:若能用request就不不要使用session,能使用session就不要使用application
★★重要概念:
- pageContext默认情况下表示一个页面的保存范围
- 另一种设置属性的方法Public abstract Void setAttribute(java.lang.String name,java.lang.Object attribute,int scope)
- scope可以取:Public Static final int APPLICATION_SCOPE、Public Static final int SESSION_SCOPE、Public Static final int REQUEST_SCOPE、Public Static final int PAGE_SCOPE
- ★★总结:四种属性范围都是依靠pageContext展开的,但是在开发中,往往使用session、request范围最多。
- 四种属性范围是整个J2EE WEB端开发必须深刻记住的概念,包括设置属性和取得属性的参数类型,返回值类型。