九大内置对象:
request:类型是HttpServletRequest,和Servlet里的HttpServletRequest一模一样。
response:类型是HttpServletResponse,和Servlet里的HttpServletResponse一模一样。JSP里基本用不到这个对象。
application:类型是ServletContext,和Servlet里的ServletContext一模一样。代表当前Web应用。
session:类型是HttpSession,是客户端与服务端的一次会话对象。
pageContext:类型是javax.servlet.jsp.PageContext。这个在Servlet里没有,是当前页面上下文对象,可以从这个对象中获取其他的8个对象:
page:类型是java.lang.Object,指当前JSP对应的Servlet对象的引用,因为类型是Object,只能调用Object类的方法,几乎不使用。
config:类型是ServletConfig,和Servlet里的ServletConfig一模一样。代表当前JSP对应的Servlet的ServletConfig对象,几乎不使用。
out:JSPWriter对象,用于在Web浏览器内输出信息,并且管理应用服务器上的输出缓冲区。在使用 out 对象输出数据时,可以对数据缓冲区进行操作,及时清除缓冲区中的残余数据,为其他的输出让出缓冲空间。待数据输出完毕后,要及时关闭输出流。
exception:只有在声明了 isErrorPage="true" 的JSP页面中,才有这个对象。在我们浏览JSP网页的过程中,如果JSP页面出现了没有捕获到的异常,那么就会生成一个exception对象,如果此时我们声明了errorPage="error.jsp",那么在出现异常的时候,网页会自动转发到errorPage指向的页面,并将exception对象传过去,在error.jsp里,如果声明了 isErrorPage="true",就可以知道详细的exception信息。如果没有声明errorPage="error.jsp",那么在出现异常的时候,网页上直接显示500。
四大作用域(从小到大):
pageContext:属性范围仅限于当前JSP页面。
request:属性范围仅限于一次请求。
session:属性范围仅限于一次会话。默认的一次会话是,浏览器从打开到关闭的过程中,用户的所有操作都属于同一次会话。PS:会话信息默认存在于浏览器缓存中,当浏览器关闭的时候清空缓存,如果设置了具体的会话时间,比如10分钟,那么会话信息存在于硬盘。
application:属性范围是当前Web应用。最大的范围。