(1)九个内置对象
jsp的内置对象:JSP内置对象是不需要声明和创建就可以在JSP页面脚本中使用的成员变量。
九个内置对象:
1.out对象
在JSP页面中,经常需要向客户端发送文本内容,这时,可以使用out对象来实现。out对象是javax.servlet.jsp.JspWriter类的实例对象,它的作用与ServletResponse.getWriter()方法返回的PrintWriter对象非常相似,都是用来向客户端发送文本形式的实体内容。不同的是,out对象的类型为JspWriter,它相当于一种带缓存功能的PrintWriter。接下来,通过一张图来描述JSP页面的out对象与Servlet引擎提供的缓冲区之间的工作关系,具体如图所示。
从图可以看出,在JSP页面中,通过out隐式对象写入数据相当于将数据插入到JspWriter对象的缓冲区中,只有调用了ServletResponse.getWriter()方法,缓冲区中的数据才能真正写入到Servlet引擎所提供的缓冲区中。
通过一个案例演示out对象的使用:
<%@ page language="java" contentType="text/html; charset=UTF-8" %>
<html>
<head>
<title>Insert title here</title>
</head>
<body><%out.println("first line<br />"); //写入JspWriter对象的缓冲区response.getWriter().println("second line<br />");//写入servlet引擎提供的缓冲区,即Response缓冲区%>
</body>
</html>
注意:内容的输出顺序。
多学一招:使用page指令设置out对象的缓冲区大小
<%@ page language="java" contentType="text/html; charset=UTF-8" buffer="0kb"%>
2.pageContext对象
pageContext对象是javax.servlet.jsp.PageContext类的实例对象,它代表当前JSP页面的运行环境。
(1)pageContext对象获取隐式对象的方法:
(2)pageContext对象不仅提供了获取隐式对象的方法,还提供了存储数据的功能。pageContext对象存储数据是通过操作属性来实现的,下表列举了pageContext操作属性的一系列方法,具体如下:
上表列举了pageContext对象操作属性的相关方法,其中,参数name指定的是属性名称,参数scope指定的是属性的作用范围。pageContext对象的作用范围有4个值,具体如下:
-
pageContext.PAGE_SCOPE:表示页面范围
-
pageContext.REQUEST_SCOPE:表示请求范围
-
pageContext.SESSION_SCOPE:表示会话范围
-
pageContext.APPLICATION_SCOPE:表示Web应用程序范围
需要注意的是,当使用findAttribute()方法查找名称为name的属性时,会按照page、request、session和application的顺序依次进行查找,如果找到,则返回属性的名称,否则返回null。
3.exception对象
在JSP页面中,经常需要处理一些异常信息,这时,可以通过exception对象来实现。exception对象是java.lang.Exception类的实例对象,它用于封装JSP中抛出的异常信息。需要注意的是,exception对象只有在错误处理页面才可以使用,即page指令中指定了属性<%@ page isErrorPage=”true”%>的页面。
(2)四个作用域
作用: 共享数据
(1)pageContext :数据只能在当前页面使用
(2)request
(3)session
(4)application
附录:
1.使用IntelliJ IDEA编译jsp文档后servlet的存储路径
路径:
C:\Users\Administrator.IntelliJIdea2017.2\system\tomcat\Unnamed_MovieSystem\work\Catalina\localhost\
2.如何修改这个路径参照此文:Idea 临时文件路径修改 - 简书