1.什么是JSP内置对象
JSP引擎在调用所生成的servlet的时候为每个页面提供的java对象,开发者可以直接调用,用他们不用显示声明,也称为预定义变量
2.九大内置对象
- request对象:HttpServletRequest实例
- response对象:HttpServletResponse实例
- out对象:JspWriter类实例,用于把结果输出在页面上
- session对象:HttpSession实例,和服务器保持会话的时候创建
- application对象:ServletContext类的实例,与应用上下文有关
- config对象:ServletConfig类实例
- pageContext对象:PageContext类的实例,提供了JSP页面所有对象以及命名空间的访问(容器,保存了很多信息),访问页面信息
- page对象:类似this
- Exception对象:Exception类实例,代表发生错误的JSP页面中对应的异常对象
3.九大内置对象的详细介绍
out对象
1.常用api:
- int getBufferSize()【得到缓存大小】
- int getRemaining()【得到未使用缓存的大小】
- boolean isAutoFlush()
- void println()
- void flush()
- void close()
- void clearBuffer()
-
void clear()
2.out对象的原理如下:
PS:out对象用的不多。。 虽然JSP已经不常用了
request,response,session,config,application对象在serlvet中详解
pageContex对象:
输出获得的其他八个对象
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<%
System.out.println(pageContext.getSession());
System.out.println(pageContext.getRequest());
System.out.println(pageContext.getResponse());
System.out.println(pageContext.getException());
System.out.println(pageContext.getPage());
System.out.println(pageContext.getServletConfig());
System.out.println(pageContext.getServletContext()); System.out.println(pageContext.getOut());
%>
</body>
</html>
效果如图:
作为域对象
类似于request,session,ServletContext作为域对象而言都有以下三个方法:
- setAttribute(String name,Objcet o)
- getAttribute(String name)
- removeAttribute(String name)
当然了,pageContext也不例外,pageContext也有这三个方法!
pageContext本质上代表的是当前JSP页面编译后的内容,作为域对象而言,它就代表着当前JSP页面(也就是page)!也就是说:pageContext域对象只在page范围内有效,超出了page范围就无效了!
引入和跳转
PageContext类中还给我们提供了跳转和包含:
- pageContext.forward(String url);
- pageContext.include(String url);
4.四种属性范围
1.page:只在当前页面有效
2.request:只在一次请求中保存属性,请转跳转有效,浏览器跳转无效
3.session:在一个会话中有效,
4个对象都支持一下方法:
- setAttribute(String name,Objcet o)
- getAttribute(String name)
- removeAttribute(String name)
应用场景
- request:如果客户向服务器发请求,产生的数据,用户看完就没用了,像这样的数据就存在request域,像新闻数据,属于用户看完就没用的
- session:如果客户向服务器发请求,产生的数据,用户用完了等一会儿还有用,像这样的数据就存在session域中,像购物数据,用户需要看到自己购物信息,并且等一会儿,还要用这个购物数据结帐
- servletContext:如果客户向服务器发请求,产生的数据,用户用完了,还要给其它用户用,像这样的数据就存在servletContext域中,像聊天数据
参考:
作者:java3y
链接:https://www.imooc.com/article/24325
来源:慕课网