JSP九大隱式對象
request
response
config
application
exception
Session
page
out
pageContext
out隱式對象
out隱式對象用於向客戶端發送文本數據。
out對象是通過調用pageContext對象的getOut方法返回的,其作用和用法與ServletResponse.getWriter方法返回的PrintWriter對象非常相似。
JSP頁面中的out隱式對象的類型為JspWriter,JspWriter相當於一種帶緩存功能的PrintWriter,設置JSP頁面的page指令的buffer屬性可以調整它的緩存大小,甚至關閉它的緩存。
只有向out對象中寫入了內容,且滿足如下任何一個條件時,out對象才去調用ServletResponse.getWriter方法,並通過該方法返回的PrintWriter對象將out對象的緩沖區中的內容真正寫入到Servlet引擎提供的緩沖區中:
設置page指令的buffer屬性關閉了out對象的緩存功能
out對象的緩沖區已滿
整個JSP頁面結束
pageContext對象
pageContext對象是JSP技術中最重要的一個對象,它代表JSP頁面的運行環境,這個對象不僅封裝了對其它8大隱式對象的引用,它自身還是一個域對象,可以用來保存數據。並且,這個對象還封裝了web開發中經常涉及到的一些常用操作,例如引入和跳轉其它資源、檢索其它域對象中的屬性等。
下面來寫一個實例:用JSP實現文件下載
<%@page import="java.net.URLEncoder"%><%@page import="java.io.File"%><%@page import="java.io.InputStream"%><%@page import="java.io.FileInputStream"%><%@page import="java.io.OutputStream"%><%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%><%
String path = getServletContext().getRealPath("./images/11.jpg");
File file = new File(path);
InputStream is = new FileInputStream(file);
response.setHeader("content-disposition", "attachment;filename=" +URLEncoder.encode(file.getName(),"UTF-8"));
OutputStream os = response.getOutputStream();
byte b[] = new byte[1024];
int flag = 0;
while((flag = is.read(b))!=-1){
os.write(b,0,flag);
}
os.close();
is.close();
%>
應特別記住一點,絕對不能有空格
作者chenglong0513