Java课题笔记~ JSP内置对象

(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对象的使用:

html 复制代码
<%@ 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 临时文件路径修改 - 简书

相关推荐
俊昭喜喜里15 分钟前
C#中的func<>
java·前端·c#
highreport20 分钟前
net报表工具对比:HighReport 与 FastReport
java·c#
xiaoqiMikko33 分钟前
七条 advisory 各给了一个修复版,而一次修完的那个数字一条都没写
java·spring boot
vHelios33 分钟前
【电商项目】短信测试遇到的问题与解决方案:InaccessibleObjectException报错、单元测试通过但未接收到验证码
java·微服务
气泡水好喝38 分钟前
Java魔法探秘:从Java代码到CPU指令,一个方法调用的完整生命周期
java
气泡水好喝43 分钟前
读《阿里巴巴Java开发手册》五年,这7条规约救了我太多次
java
凯哥Java1 小时前
System.setProperty 的正确姿势:Spring Boot 启动类里的“缺省值“魔法
java·spring boot·后端
lhldsg1 小时前
智慧场馆解决方案小程序系统:从架构设计到落地实践
java·小程序·需求分析
浔溺1 小时前
al+大数据每日学习笔记33
大数据·笔记·学习
hfywmsj2 小时前
广州餐饮铺位招租的选址架构:流量入口与成本函数分析
java·大数据·jvm·广州餐饮铺位招租