Javaweb 学习记录—JSP内置对象

Javaweb 学习记录—JSP内置对象

 1.内置对象简介
 JSP内置对象也称隐含对象,是指在JSP页面中,不用声明就可以在脚本和表达式中直接使用的对象。
 JSP内置对象也称隐含对象,它提供了Web开发常用的功能,为了提高开发效率,JSP 规范预定义了内置对象。
 JSP内置对象有如下特点:

  • 内置对象由 Web 容器自动载入,不需要实例化;
  • 内置对象通过 Web容器来实现和管理;
  • 在所有的 JSP 页面中,直接调用内置对象都是合法的。

JSP 规范定义了9种内置对象

对象名称 类型 功能说明
request javax.servlet.http.HttpServletRequest 请求对象,提供客户端HTTP请求数据的访问
response javax.servlet.http.HttpServletResponse 响应对象,用来向客户端输出响应
out javax.servlet.jsp.JspWriter 输出对象,提供对输出流的访问
session javax.servlet.http.HttpSession 会话对象,用来保存服务器与每个客户端会话过程中的信息
application javax.servlet.ServletContext 应用程序对象,用来保存整个应用环境的信息
pageContext javax.servlet.jsp.PageContext 页面上下文对象,用于存储当前JSP页面的相关信息
config javax.servlet.ServletConfig 页面配置对象,JSP页面的配置信息对象
page javax.servlet.jsp.HttpJspPage 当前JSP页面对象,即this
exception java.lang.Throwable 异常对象,用于处理JSP页面中的错误

 2.与 Input/Output 有关的内置对象
 与 Input/Output (输入/ / 输出)有关的隐含对象包括: request 对象、response 对象和 out 对象,这类对象主要用来作为客户端和服务器间通信的桥梁。

  • request 对象表示客户端对服务器端发送的请求;
  • response 对象表示服务器对客户端的响应;
  • out 对象负责把处理结果输出到客户端。

(1)request

  • request 对象即请求对象,表示客户端对服务器发送的请求 , 主要用于接受客户端通过 HTTP 协议传送给服务器端的数据;
  • request 对象的类型为 javax.servlet.http.HttpServletRequest ,与Servlet 中的请求对象为同一对象;
  • request 对象的作用域为一次 request请求。
  • request 对象拥有 HttpServletRequest 接口的所有方法,其常用方法如下:
    • void setCharacterEncoding(String charset) :设置请求体参数的解码字符集;
    • String getParameter(String name) :根据参数名获取单一参数值;
    • String[] getParameterValues(String name) :根据参数名获取一组参数值;
    • void setAttribute(String name,Object value) :以名/ / 值的方式存储请求域属性;
    • Object getAttribute(String name):根据属性名获取存储的对象数据。

(2)response

  • response 对象即响应对象,表示服务器对客户端的响应。主要用来将JSP 处理后的结果传回到客户端。 response 对象类型为javax.servlet.http.HttpServletResponse ,与 Servlet 中的响应对象为同一对象。
  • response 对象拥有 HttpServletResponse 接口的所有方法,其常用的方法如下:
    • void setContentType(String name):设置响应内容的类型和字符编码;
    • void sendRedirect(String url) :重定向到指定的 URL 资源。

(3)out

  • out对象即输出对象,用来控制管理输出的缓冲区( buffer )和输出流( output stream)向客户端页面输出数据。
  • out对象类型为javax.servlet.jsp.JspWriter,与 HttpServletResponse接口的getWriter() 方法获得的PrintWriter对象功能相同,并都由java.io.Writer类继承而来。
  • out 对象的方法可以分为两类:
    • 数据的输出;
    • 缓冲区的处理。

out内置对象

方法 描述
print/println(基本数据类型) 输出一个基本数据类型的值
print/println(Object obj) 输出一个对象的引用地址
print/println(String str) 输出一个字符串的值
newLine() 输出一个换行符

示例:

<%
	int i=0;
	java.util.Date date=new java.util.Date();
	out.print(i);
	out.newLine();
	out.println(date);
%>

out对象缓冲区的方法及描述

方法 方法描述
void clear() 清除输出缓冲区的内容。若缓冲区为空,则产生IOException异常
void clearBuffer() 清除输出缓冲区的内容。若缓冲区为空,不会产生IOException异常
void flush() 直接将目前暂存于缓冲区的数据刷新输出
void close() 关闭输出流。流一旦被关闭,则不能再使用out对象做任何操作。
int getBufferSize() 获取目前缓冲区的大小(KB)
int getRemaining() 获取目前使用后还剩下的缓冲区大小(KB)
boolean isAutoFlush() 返回true表示缓冲区满时会自动刷新输出;false表示缓冲区满时不会自动清除并产生异常处理
  • 向out对象的输出流中写入数据时,数据会先被存储在缓冲区中,在JSP默认配置下,缓冲区满时会被自动刷新输出。
  • JSP页面通过page指令的autoFlush属性和buffer属性配置缓冲区参数:
    • autoFlush属性表示是否自动刷新,默认值为true;
    • buffer属性表示缓冲区大小,默认值为8kb。 在此配置下,out 对象在输出缓冲区内容每达到8kb后,会自动刷新输出而不会产生异常处理。

演示:在取消自动刷新功能时,页面输出信息超过缓冲区指定大小的情况和使用out.flush()刷新方法后的情况。
创建outExample.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
	pageEncoding="UTF-8" autoFlush="false" buffer="2kb"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
	<%
		for (int i = 0; i < 10000; i++) {
   
			out.println("**************");
			//out.flush();
		}
	%>
</body>
</html>

运行

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值