Jsp的内置对象
- 什么是内置对象: 在jsp开发中,会频繁使用到一些对象, 例如HttpSession, ServletContext, ServletContext, HttpServletRequet。如果我们每次要使用这些对象都去创建这些对象就显示非常麻烦。所以Sun公司设计Jsp时,在jsp页面加载完毕之后就会自动帮开发者创建好这些对象,而开发者只需要直接使用这些对象调用方法即可!这些创建好的对象就叫内置对象!
- 举例:
- servlet: HttpSession session = request.getSession(true); (需要开发者做)
- jsp:
- tomcat服务器: HttpSession session = request.getSession(true);(不需要开发者做)
- 开发者做的: session.getId();
JSP-9大内置对象(内置对象名 : 类型)
- request : HttpServletRequest
- response : HttpServletResponse
- config : ServletConfig
- application : ServletContext
- session : HttpSession
- exception : Throwable
- page : Object(this)
- out : JspWriter
- pageContext : PageContext
Out对象
- out对象类型,JspWriter类,相当于带缓存的PrintWriter
- PrintWriter.wrier(内容) : 直接向浏览器写出内容
- JspWriter.writer(内容) : 向jsp缓冲区写出内容(默认8kb)
- JSP页面缓冲机制 :
- JspWriter首先写到JspWriter缓冲区, 然后当缓冲区满足下面4个条件时, 缓冲区的内容会向外写入PrintWriter到的对象当中,最后PrintWriter的write方法直接输送到浏览器中
- 当满足以下条件之一,缓冲区内容写出:
1)缓冲区满了 :
2)刷新缓存区 : out.flush
3)关闭缓存区 : buffer = "0kb"
4)执行完毕jsp页面 :
- 方法:
-
out.flush()
: 刷新缓存
-
out.getRemaining
: 查看缓冲区剩余大小
-
out.getBufferSize
: 查看缓冲区大小
<%@ page language="java" import="java.util.*" pageEncoding="utf-8" buffer="1kb"%><%
for(int i=1;i<=1024;i++){
out.write("a");
}
//查看缓存区大小
System.out.println("当前缓存区大小:"+out.getBufferSize());
//查看缓存区剩余大小
System.out.println("缓存区剩余大小:"+out.getRemaining());
//刷新缓存
//out.flush();
response.getWriter().write("123");
%>