程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> JSP編程 >> 關於JSP >> jsp九大隱士對象及圖片下載

jsp九大隱士對象及圖片下載

編輯:關於JSP

 

文件下載jsp代碼

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@page import="java.io.File"%><%@page import="java.io.OutputStream"%><%@page import="java.io.InputStream"%><%@page import="java.io.FileInputStream"%><%@page import="java.net.URLEncoder"%><%

         String path = application.getRealPath("./images/a.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 buffer[] = new byte[1024];

         int len;

         while((len=is.read(buffer))!=-1){

          os.write(buffer,0,len);

         }

         os.flush();

         os.close();

         is.close();

%>l     JSP運行原理和九大隱式對象

 

l     每個JSP 頁面在第一次被訪問時,WEB容器都會把請求交給JSP引擎(即一個Java程序)去處理。JSP引擎先將JSP翻譯成一個_jspServlet(實質上也是一個servlet) ,然後按照servlet的調用方式進行調用。

 

l     由於JSP第一次訪問時會翻譯成servlet,所以第一次訪問通常會比較慢,但第二次訪問,JSP引擎如果發現JSP沒有變化,就不再翻譯,而是直接調用,所以程序的執行效率不會受到影響。

 

l     JSP引擎在調用JSP對應的_jspServlet時,會傳遞或創建9個與web開發相關的對象供_jspServlet使用。JSP技術的設計者為便於開發人員在編寫JSP頁面時獲得這些web對象的引用,特意定義了9個相應的變量,開發人員在JSP頁面中通過這些變量就可以快速獲得這9大對象的引用。

 

l     這9個對象分別是哪些,以及作用也是筆試經常考察的知識點。

 

l     JSP九大隱式對象

 

l     request

 

l     response

 

l     config

 

l     application

 

l     exception

 

l     Session

 

l     page

 

l     out

 

l     pageContext

 

l     out隱式對象

 

l     out隱式對象用於向客戶端發送文本數據。

 

l     out對象是通過調用pageContext對象的getOut方法返回的,其作用和用法與ServletResponse.getWriter方法返回的PrintWriter對象非常相似。

 

l     JSP頁面中的out隱式對象的類型為JspWriter,JspWriter相當於一種帶緩存功能的PrintWriter,設置JSP頁面的page指令的buffer屬性可以調整它的緩存大小,甚至關閉它的緩存。

 

l     只有向out對象中寫入了內容,且滿足如下任何一個條件時,out對象才去調用ServletResponse.getWriter方法,並通過該方法返回的PrintWriter對象將out對象的緩沖區中的內容真正寫入到Servlet引擎提供的緩沖區中:

 

l     設置page指令的buffer屬性關閉了out對象的緩存功能

 

l     out對象的緩沖區已滿

 

l     整個JSP頁面結束

作者 qiwancong

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved