Jsp有四种属性范围和Jsp的九大内置对象
一、jsp有四大作用域范围:
page --页面级别,只有在一个页面内可用;
request --请求级别,服务器跳转,一次请求后消失;
session --会话级别,客户端跳转(服务器跳转),与浏览器有关,IE是在重新打开IE时才会不同;
application --应用级别,当重新启动服务器才会消失;
作用域大小:application > session >request > page
二、jsp中九大内置对象:
1、request 请求对象 类型 javax.servlet.ServletRequest 作用域 Request
2、response 响应对象 类型 javax.servlet.ServletResponse 作用域 Page
3、pageContext 页面上下文对象 类型 javax.servlet.jsp.PageContext 作用域 Page
4、session 会话对象 类型 javax.servlet.http.HttpSession 作用域 Session
5、application 会话对象 类型 javax.servlet.ServletContext 作用域 Application
6、out 输出对象 类型 javax.servlet.jsp.JspWriter 作用域 Page
7、config 配置对象 类型javax.servlet.ServletConfig 作用域 Page
8、page 页面对象 类型 javax.lang.Object 作用域 Page
9、exception 例外对象 类型javax.lang.Throwable 作用域 Page
~~1.out 相当于response.getWriter();
区别在于out对象自带缓冲区,如果out 和 response.getWriter()混用可能会造成输出顺序上混乱;
page指令中buffer和autoflush就是用来设置out缓冲区的,如果要在JSP页面中输出内容,直接使用out,尽量不要使用response.getWriter();
2.pageContext:代表当前JSP页面的运行环境的对象,通过该对象可以访问页面中的共享数据。
(1)作为入口对象获取其他八大隐式对象
getPage方法 返回page隐式对象
getRequest方法 返回request隐式对象
getResponse方法 返回response隐式对象
getServletConfig方法 返回config隐式对象
getServletContext方法 返回application隐式对象
getSession方法 返回session隐式对象
getException方法 返回exception隐式对象
getOut 返回out隐式对象
(2)同时也是一个域对象,并且可以作为入口对象来操作其他三大作用域中的数据;
1、作为域对象时:
setAttribute(String name,Object obj);
getAttribute(String name);
removeAttribute(String name);
getAttributeNames();
生命周期:访问JSP页面开始创建,访问JSP页面结束时销毁
作用范围:当前JSP页面
主要功能:在当前JSP页面中共享数据
ServletContext > Session > request >pageContext
2、入口对象,可以操作其他三大作用域
setAttribute(String name, Object value, int scope)
getAttribute(String name,int scope)
removeAttribute(String name,int scope)
其中pageContext中代表域的常量:
PageContext.APPLICATION_SCOPE
PageContext.SESSION_SCOPE
PageContext.REQUEST_SCOPE
PageContext.PAGE_SCOPE
额外提供了:findAttribute(String name);//按照由小到大的顺序在四大作用域中搜寻指定名称的属性,如果找到就返回,如果都找不到就 返回null
ServletContext >session >request >page
(3)提供了便捷方法实现转发和包含
转发 request.getRequestDispatcher("/7.jsp").forward(request,response);
包含 request.getRequestDispatcher("/7.jsp").include(request,response);
<%@include file="xxx.jsp"%>
pageContext.forward("7.jsp");
pageContext.include("7.jsp");