-
pageContext
-
page
-
config 【相当于Servlet中ServletConfig】
-
request
-
response
-
session
-
application 【相当于Servlet中的ServletContext】
-
exception
-
out
out对象的API
- int getBufferSize()【得到缓存大小】
- int getRemaining()【得到未使用缓存的大小】
- boolean isAutoFlush()
- void println()
- void flush()
- void close()
- void clearBuffer()
- void clear()
1. out对象用于向浏览器输出数据,与之对应的是Servlet的PrintWriter对象
2. out对象自带缓存,满足如下任何一个条件时,out对象才去调用ServletResponse.getWriter方法,并通过该方法返回的PrintWriter对象将out对象的缓冲区中的内容真正写入到Servlet引擎提供的缓冲区中
- 设置page指令的buffer属性关闭了out对象的缓存功能
- out对象的缓冲区已满
- 整个JSP页面结束
pageContext
1.它封装了对其他8大内置对象的引用2.pageContext和request,session,ServletContext一样都是域对象,都有下面三种方法:
- setAttribute(String name,Objcet o)
- getAttribute(String name)
- removeAttribute(String name)
3.pageContext域对象默认只在page范围内有效。
4.pageContext重载了上面三个方法:
- getAttribute(String name,int scope)
- setAttribute(String name,Object value,int scope)
- removeAttribute(String name,int scope)
可以设置域的范围:
- pageContext.APPLICATION_SCOPE
- pageContext.SESSION_SCOPE
- pageContext.REQUEST_SCOPE
- pageContext.PAGE_SCOPE
6.findAttribute(String name)
,该方法会查找各个域的属性,从小到大开始寻找!也就是page—>request->session->application
7.
pageContext.forward(String url)
pageContext.include(String url)
作用和servlet中一样。
四种属性范围
-
page【只在一个页面中保存属性,跳转页面无效】
-
requet【只在一次请求中保存属性,服务器跳转有效,浏览器跳转无效】
-
session【在一个会话范围中保存属性,无论何种跳转均有效,关闭浏览器后无效】
-
application【在整个服务器中保存,所有用户都可以使用】
应用场景
-
request:如果客户向服务器发请求,产生的数据,用户看完就没用了,像这样的数据就存在request域,像新闻数据,属于用户看完就没用的。
-
session:如果客户向服务器发请求,产生的数据,用户用完了等一会儿还有用,像这样的数据就存在session域中,像购物数据,用户需要看到自己购物信息,并且等一会儿,还要用这个购物数据结帐
-
servletContext:如果客户向服务器发请求,产生的数据,用户用完了,还要给其它用户用,像这样的数据就存在servletContext域中,像聊天数据