




已閱讀5頁,還剩32頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第 一章 什么是JSP什么是JSPJSP(Java Server Pages)是基于Java 語言的一種Web應(yīng)用開發(fā)技術(shù)。利用這一技術(shù)可以建立安全、跨平臺(tái)、易維護(hù)的Web 應(yīng)用程序ss網(wǎng)絡(luò)應(yīng)用中最常見的模式是B/S模式 (Browser / Sever即瀏覽器/服務(wù)器)B/S模式中即需要獲取信息的用戶使用瀏覽器向服務(wù)器發(fā)出請(qǐng)求,服務(wù)器對(duì)此做出響應(yīng),將有關(guān)信息發(fā)送給用戶的瀏覽器基于B/S模式的網(wǎng)絡(luò)程序的核心就是設(shè)計(jì)服務(wù)器端的Web應(yīng)用程序。JSP引擎與Tomcat服務(wù)器JSP的核心內(nèi)容之一就是編寫JSP頁面,JSP頁面是Web應(yīng)用程序的重要組成部分之一。簡單Web應(yīng)用程序可能只有一個(gè)JSP頁面。復(fù)雜的Web應(yīng)用程序可能由許多JSP頁面、Javabean和servlet組成。當(dāng)用戶請(qǐng)求Web服務(wù)器上的JSP頁面時(shí),JSP引擎負(fù)責(zé)運(yùn)行JSP,并將運(yùn)行結(jié)果返回給用戶。2apache-tomcat-8.0.3.exe的安裝 apache-tomcat-8.0.3.exe文件是針對(duì)MS-Window的Tomcat服務(wù)器,安裝后形成的目錄結(jié)構(gòu)和apache-tomcat-8.0.3.zip安裝的基本相同。 單擊下載的apache-tomcat-8.0.3.exe,將出現(xiàn)“安裝向?qū)А苯缑?,單擊其中的Next按鈕,接受授權(quán)協(xié)議后,將出現(xiàn)選擇“安裝方式”的界面。在“安裝方式”界面中選擇Norma、Minimun、Custom和Full之一,然后按著安裝向?qū)У奶崾具M(jìn)行安裝即可。網(wǎng)頁瀏覽過程打開瀏覽器-輸入網(wǎng)址-打開網(wǎng)頁-瀏覽器是 網(wǎng)頁瀏覽的工具-輸入網(wǎng)址是向網(wǎng)站服務(wù)器發(fā)出請(qǐng)求-打開網(wǎng)頁是接收服務(wù)器發(fā)送的網(wǎng)頁靜態(tài)網(wǎng)頁與動(dòng)態(tài)網(wǎng)頁網(wǎng)頁分為靜態(tài)網(wǎng)頁和動(dòng)態(tài)網(wǎng)頁,動(dòng)態(tài)與靜態(tài)是相對(duì)的靜態(tài)網(wǎng)頁:靜態(tài)網(wǎng)頁是事先做好并存放于服務(wù)器中的文件,無論是否被訪問,都是一個(gè)獨(dú)立存在的文件;靜態(tài)網(wǎng)頁使用語言:HTML(超文本標(biāo)記語言);靜態(tài)網(wǎng)站沒有數(shù)據(jù)庫的支持,在網(wǎng)站制作和維護(hù)方面工作量較大;由于不需通過數(shù)據(jù)庫工作,訪問速度比較快;靜態(tài)網(wǎng)頁的交互性差動(dòng)態(tài)網(wǎng)頁:動(dòng)態(tài)網(wǎng)頁實(shí)際上并不是獨(dú)立存在于服務(wù)器上的網(wǎng)頁文件,只有當(dāng)用戶請(qǐng)求時(shí)服務(wù)器才返回一個(gè)完整的網(wǎng)頁;動(dòng)態(tài)網(wǎng)頁以數(shù)據(jù)庫技術(shù)為基礎(chǔ),降低網(wǎng)站維護(hù)的工作量;動(dòng)態(tài)網(wǎng)頁技術(shù)分為客戶端和服務(wù)器端常見動(dòng)態(tài)網(wǎng)頁技術(shù):JSP,PHP,ASP(.net)ASPActive Server Page JSPJavaServer Pages(一種動(dòng)態(tài)網(wǎng)頁技術(shù)標(biāo)準(zhǔn)。 在傳統(tǒng)的網(wǎng)頁HTML文件(*.htm,*.html)中加入Java程序片段(Scriptlet)和JSP標(biāo)記(tag),就構(gòu)成了JSP網(wǎng)頁(*.jsp)。)Web服務(wù)器在遇到訪問JSP網(wǎng)頁的請(qǐng)求時(shí),首先執(zhí)行其中的程序片段,然后將執(zhí)行結(jié)果以HTML格式返回給客戶。程序片段可以操作數(shù)據(jù)庫、重新定向網(wǎng)頁以及發(fā)送 email 等等,這就是建立動(dòng)態(tài)網(wǎng)站所需要的功能。所有程序操作都在服務(wù)器端執(zhí)行,網(wǎng)絡(luò)上傳送給客戶端的僅是得到的結(jié)果,對(duì)客戶瀏覽器的要求最低,可以實(shí)現(xiàn)無Plugin,無ActiveX,無Java Applet,甚至無FrameJSP動(dòng)態(tài)網(wǎng)頁技術(shù)優(yōu)勢業(yè)務(wù)邏輯和顯示分離多平臺(tái)支持及高可移植性開發(fā)便利安全較高的效率與性能較低的開發(fā)和運(yùn)營成本使用JSP進(jìn)行開發(fā),需要具備以下的運(yùn)行環(huán)境:Web瀏覽器JDK開發(fā)工具包數(shù)據(jù)庫Web服務(wù)器第 二章 JSP頁面JSP頁面可由5種元素組合而成: 普通的HTML標(biāo)記符; JSP標(biāo)記,如指令標(biāo)記、動(dòng)作標(biāo)記; 變量和方法的聲明; Java程序片; Java表達(dá)式 ;JSP頁面的運(yùn)行原理:把JSP頁面中普通的HTML標(biāo)記符號(hào),交給客戶的瀏覽器執(zhí)行顯示。 JSP標(biāo)記、數(shù)據(jù)和方法聲明、Java程序片由Tomcat服務(wù)器負(fù)責(zé)執(zhí)行,將需要顯示的結(jié)果發(fā)送給客戶的瀏覽器。 Java表達(dá)式由Tomcat服務(wù)器負(fù)責(zé)計(jì)算,將結(jié)果轉(zhuǎn)化為字符串,交給客戶的瀏覽器負(fù)責(zé)顯示。1.在JSP頁面的標(biāo)記符 “ ” 有效范圍和標(biāo)識(shí)符的位置無關(guān) 之間聲明的變量稱作JSP頁面的成員變量(變量類型可以是java允許的任何數(shù)據(jù)類型)。 之間聲明方法 。該方法在整個(gè)JSP頁面有效“”之間可以是一個(gè)Java表達(dá)式 。表達(dá)式的值由服務(wù)器負(fù)責(zé)計(jì)算,并將計(jì)算結(jié)果用字符串形式發(fā)送到客戶端顯示1. HTML注釋格式: 2. JSP注釋格式: 定義JSP頁面使用的腳本語言,該屬性的值目前只能取java。例如: 注:JSP頁面默認(rèn)有如上page指令 。Import 引入Java運(yùn)行環(huán)境提供的包中的類例如:注:JSP頁面默認(rèn)import屬性已經(jīng)有“java.lang.*”、“javax.servlet.*” 等值。contentType 屬性值確定JSP頁面響應(yīng)的MIME(Multipurpose Internet Mail Extention)類型和JSP頁面字符的編碼。例如: 注:不允許兩次使用page 指令給contentType屬性指定不同的屬性值 .session屬性用于設(shè)置是否需要使用內(nèi)置的session對(duì)象。session的屬性值可以是true或false。session屬性默認(rèn)的屬性值是true。buffer屬性buffer屬性用來指定out設(shè)置的緩沖區(qū)的大小或不使用緩沖區(qū)。buffer屬性的默認(rèn)值是8kb 。buffer屬性可以取值“none”,設(shè)置out不使用緩沖區(qū)。autoFlush屬性: 指定out的緩沖區(qū)被填滿時(shí),緩沖區(qū)是否自動(dòng)刷新。 注: autoFlush屬性的默認(rèn)值是true。isThreadSafe屬性: 用來設(shè)置JSP頁面是否可多線程訪問。 注: isThreadSafe屬性的默認(rèn)值是true。 info屬性的屬性值是一個(gè)字符串,其目的是為JSP頁面準(zhǔn)備一個(gè)常用且可能需要經(jīng)常修改的字符串例如: 注:可以在JSP頁面中使用方法: getServletInfo(); 獲取info屬性的屬性值。 include 動(dòng)作標(biāo)記語法格式: 或 param子標(biāo)記 include動(dòng)作標(biāo)記告訴JSP頁面動(dòng)態(tài)加載一個(gè)文件。 注: include 動(dòng)作標(biāo)記是在JSP頁面運(yùn)行時(shí)才處理文件,被處理的文件在邏輯和語法上獨(dú)立于當(dāng)前JSP頁面。param動(dòng)作標(biāo)記 forward動(dòng)作標(biāo)記 plugin動(dòng)作標(biāo)記 useBean動(dòng)作標(biāo)記第 三章第 四章 內(nèi)置對(duì)象內(nèi)置對(duì)象有:resquest、response、session、out 、 applicationrequest對(duì)象可以獲取用戶提交的信息。request對(duì)象獲取用戶提交信息的最常用的方法是getParameter(String s).一般格式是: 提交手段 例如用戶提交信息表單: tom.jsp頁面可以使用內(nèi)置request對(duì)象獲得用戶提交的信息 request.getParameter(boy); 當(dāng)用request對(duì)象獲取用戶提交的漢字字符時(shí),會(huì)出現(xiàn)亂碼問題,所以對(duì)含有漢字字符的信息必須進(jìn)行特殊的處理String str=request.getParameter(girl); byte b=str.getBytes(ISO-8859-1); str=new String(b);getProtocol():獲取請(qǐng)求使用的通信協(xié)議,如http/1.1等。getServletPath():獲取請(qǐng)求的JSP頁面所在的目錄。getContentLength():獲取HTTP請(qǐng)求的長度。getMethod():獲取表單提交信息的方式,如POST或GET。getHeader(String s):獲取請(qǐng)求中頭的值。getHeaderNames():獲取頭名字的一個(gè)枚舉。getHeaders(String s):獲取頭的全部值的一個(gè)枚舉。getRemoteAddr():獲取客戶的IP地址。getRemoteHost():獲取客戶機(jī)的名稱(如果獲取不到,就獲取IP地址).getServerName():獲取服務(wù)器的名稱。getServerPort():獲取服務(wù)器的端口號(hào)。getParameterNames():獲取表單提交的信息體部分中name參數(shù)值的一個(gè)枚舉. HTML是Hypertext Marked Language的縮寫,即超文本標(biāo)記語言。 服務(wù)器通過屬性name指定的名字來獲取“輸入對(duì)象的GUI類型”中提交的數(shù)據(jù)?!拜斎雽?duì)象的GUI類型”可以是:text(文本框)、checkbox(檢查框)、submit(提交鍵)等。文本框text: 單選框radio: 復(fù)選框checkbox : 口令框password:隱藏hidden: 提交鍵submit: 重置鍵:reset:處理HTML標(biāo)記_、格式1)下拉列表 你選了小貓 你選了小狗 (2)滾動(dòng)列表:在Select中指定size屬性的值就變成滾動(dòng)列表,size的值是滾動(dòng)列表的可見行的個(gè)數(shù)。 計(jì)算1到n的連續(xù)和 計(jì)算1到n的平方和 標(biāo)記在表單中指定一個(gè)能輸入多行文本的文本區(qū)域。基本格式為: 表格由、標(biāo)記定義。一般格式: 單元格中的數(shù)據(jù) 單元格中的數(shù)據(jù) 其中 定義表格的一個(gè)行,或標(biāo)記定義這一行中的表格單元,二者的區(qū)別是:定義的單元加重顯示,稱做普通單元,不加重顯示。一行中的加重單元和普通單元可以交替出現(xiàn),也可以全是加重單元或普通單元。中增加選項(xiàng)border可指明該表格是否帶有邊框。使用或標(biāo)記都可以顯示一副圖象,標(biāo)記的基本格式為 描述文字描述文字 播放音樂和視頻描述文字標(biāo)記中經(jīng)常使用的屬性及取值如下:autostart屬性的值用來指定音樂或視頻文件傳送完畢后是否立刻播放, autostart取值 “true”或“false”,該屬性的默認(rèn)值是false。loop屬性的取值為正整數(shù),該屬性的值用來指定音樂或視頻文件重復(fù)播放的次數(shù)。動(dòng)態(tài)響應(yīng)contentType屬性 由于page指令只能為contentType屬性指定一個(gè)值來決定響應(yīng)的MIME類型。 如果想動(dòng)態(tài)地改變這個(gè)屬性的值來響應(yīng)用戶,就需要使用response對(duì)象的setContentType(String s)方法來改變contentType的屬性值。 public void setContentType(String s)方法動(dòng)態(tài)設(shè)置響應(yīng)的MIME類型,參數(shù)s可取: text/html、text/plain、image/gif、image/x-xbitmap、 image/jpeg、image/pjpeg、application/x-shockwave-flash、 application/vnd.ms-powerpoint、 application/vnd.ms-excel、 application/msword。 response對(duì)象可以使用方法: addHeader(String head,String value);或使用方法: setHeader(String head ,String value);動(dòng)態(tài)添加新的響應(yīng)頭和頭的值,并將這些頭發(fā)送給用戶的瀏覽器。如果添加的頭已經(jīng)存在,則先前的頭被覆蓋。 例4-12用戶的重定向。在某些情況下,JSP引擎在響應(yīng)用戶時(shí),可能需要將用戶重新引導(dǎo)至另一個(gè)頁面。例如,如果用戶輸入的表單信息不完整,就會(huì)再次被引導(dǎo)到該表單的輸入頁面。使用response對(duì)象的sendRedirect(URL url)方法實(shí)現(xiàn)用戶的重定向。response的狀態(tài)行當(dāng)JSP引擎對(duì)用戶請(qǐng)求進(jìn)行響應(yīng)時(shí),它發(fā)送的首行稱做狀態(tài)行。 狀態(tài)行包括3位數(shù)字的狀態(tài)代碼和對(duì)狀態(tài)代碼的描述(稱做原因短語)。session對(duì)象內(nèi)置session(會(huì)話)對(duì)象記錄有關(guān)連接的信息.由Tomcat服務(wù)器負(fù)責(zé)創(chuàng)建。當(dāng)一個(gè)用戶首次訪問Web服務(wù)目錄中的某個(gè)JSP頁面時(shí),JSP引擎為其產(chǎn)生一個(gè)session對(duì)象。為用戶產(chǎn)生的session對(duì)象調(diào)用相應(yīng)的方法可以存儲(chǔ)用戶在訪問各個(gè)頁面期間提交的各種信息session對(duì)象與URL重寫 如果用戶端不支持Cookie,那么用戶在不同網(wǎng)頁之間的session對(duì)象可能是互不相同的,因?yàn)槿绻?wù)器無法將Id存放到用戶端,就不能建立session對(duì)象和用戶的一一對(duì)應(yīng)關(guān)系。 可以通過URL重寫來實(shí)現(xiàn)session對(duì)象的惟一性。所謂URL重寫,就是當(dāng)用戶從一個(gè)頁面重新鏈接到另一個(gè)頁面時(shí),通過向這個(gè)新的URL添加參數(shù),把session對(duì)象的Id傳帶過去,這樣就可以保障用戶在該網(wǎng)站各個(gè)頁面中的session對(duì)象是完全相同的??梢允褂胷esponse對(duì)象調(diào)用encodeURL()或encodeRedirectURL()方法實(shí)現(xiàn)URL重寫.例4-19中,session對(duì)象使用setMaxInactiveInterval(int interval)方法設(shè)置最長的“發(fā)呆”狀態(tài)時(shí)間為10秒。用戶可以通過刷新頁面檢查是否達(dá)到了最長的“發(fā)呆”時(shí)間,如果兩次刷新之間的間隔超過10秒,用戶先前的session將被取消,用戶將獲得一個(gè)新的session對(duì)象。使用session設(shè)置時(shí)間間隔 例4-20out對(duì)象 out對(duì)象是一個(gè)輸出流,用來向用戶端輸出數(shù)據(jù)。 out對(duì)象可調(diào)用如下的方法用于各種數(shù)據(jù)的輸出,n out.print(Boolean),out.println(Boolean) 用于輸出一個(gè)布爾值。n out.print(char),out.println(char)輸出一個(gè)字符。n out.print(double),out.println(double) 輸出一個(gè)雙精度的浮點(diǎn)數(shù)。n out.print(float),out.println(float) 用于輸出一個(gè)單精度的浮點(diǎn)數(shù)。n out.print(long),out.println(long)輸出一個(gè)長整型數(shù)據(jù)。n out.print(String),out.println(String) 輸出一個(gè)字符串對(duì)象的內(nèi)容。n out.newLine()輸出一個(gè)換行符。n out.flush() 輸出緩沖區(qū)里的內(nèi)容。n out.close() 關(guān)閉流。 application對(duì)象 任何客戶在所訪問的服務(wù)目錄的各個(gè)頁面瀏覽時(shí),application對(duì)象都是同一個(gè).application對(duì)象的常用方法(1)public void setAttribute(String key, Object obj) application對(duì)象可以調(diào)用該方法將參數(shù)Object指定的對(duì)象 obj添加到application對(duì)象中,并為添加的對(duì)象指定了一個(gè)索引關(guān)鍵字,如果添加的兩個(gè)對(duì)象的關(guān)鍵字相同,則先前添加對(duì)象被清除。(2)public Object getAttibue(String key) 獲取application對(duì)象含有的關(guān)鍵字是key的對(duì)象。由于任何對(duì)象都可以添加到application對(duì)象中,因此用該方法取回對(duì)象時(shí),應(yīng)強(qiáng)制轉(zhuǎn)化為原來的類型。(3)public Enumeration getAttributeNames() application對(duì)象調(diào)用該方法產(chǎn)生一個(gè)枚舉對(duì)象,該枚舉對(duì)象使用nextElemets()遍歷application中的各個(gè)對(duì)象所對(duì)應(yīng)的關(guān)鍵字。(4)public void removeAttribue(String key) 從當(dāng)前application對(duì)象中刪除關(guān)鍵字是key的對(duì)象。 (5)public String getServletInfo() application對(duì)象可以調(diào)用該方法獲取Servlet編譯器的當(dāng)前版本的信息。 第 五章 JSP中的文件操作JSP通過Java的輸入輸出流來實(shí)現(xiàn)文件的讀寫操作File構(gòu)造方法n File(String filename);n File(String directoryPath,String filename);n File(File f, String filename); 1創(chuàng)建目錄 public boolean mkdir() File對(duì)象調(diào)用方法創(chuàng)建一個(gè)目錄,如果創(chuàng)建成功就返回true,否則返回false。 2列出目錄中的文件(如果File對(duì)象是一個(gè)目錄) public String list() 用字符串形式返回目錄下的全部文件。 public File listFiles() 用File對(duì)象形式返回目錄下的全部文件。3列出指定類型的文件 public String list(FilenameFilter obj) 該方法用字符串形式返回目錄下的指定類型的所有文件。 public File listFiles(FilenameFilter obj) 該方法用File對(duì)象返回目錄下的指定類型的所有文件。 File對(duì)象調(diào)用方法 public boolean delete(); 可以刪除當(dāng)前對(duì)象代表的文件或目錄。如果File對(duì)象表示的是一個(gè)目錄,則該目錄必須是一個(gè)空目錄,刪除成功將返回true使用字節(jié)流讀寫文件java.io包提供大量的流類。稱InputStream類及其子類對(duì)象為字節(jié)輸入流類,稱OutputStream類及其子類對(duì)象為字節(jié)輸出流。InputStream類的常用方法:l int read()輸入流調(diào)用該方法從源中讀取單個(gè)字節(jié)的數(shù)據(jù),該方法返回字節(jié)值(0255之間的一個(gè)整數(shù))。如果未讀出字節(jié)就返回-1。l int read(byte b) 輸入流調(diào)用該方法從源中試圖讀取b.length個(gè)字節(jié)到字節(jié)數(shù)組b中,返回實(shí)際讀取的字節(jié)數(shù)目。如果到達(dá)文件的末尾,則返回-1。l int read(byte b, int off, int len) 輸入流調(diào)用該方法從源中試圖讀取len個(gè)字節(jié)到字節(jié)數(shù)組b中,并返回實(shí)際讀取的字節(jié)數(shù)目。如果到達(dá)文件的末尾,則返回-1。參數(shù)off指定從字節(jié)數(shù)組的某個(gè)位置開始存放讀取的數(shù)據(jù)。l void close() 輸入流調(diào)用該方法關(guān)閉輸入流。l long skip(long numBytes) 輸入流調(diào)用該方法跳過numBytes個(gè)字節(jié),并返回實(shí)際跳過的字節(jié)數(shù)目。OutputStream類的常用方法:l void write(int n) 輸出流調(diào)用該方法向輸出流寫入單個(gè)字節(jié)。l void write(byte b) 輸出流調(diào)用該方法向輸出流寫入一個(gè)字節(jié)數(shù)組。l void write(byte b,int off,int len) 從給定字節(jié)數(shù)組中起始于偏移量off處取len個(gè)字節(jié)寫入到輸出流。l void close() 關(guān)閉輸出流。輸入、輸出流示意圖n FileInputStream類是InputStream的子類。 構(gòu)造方法: FileInputStream(String name) FileInputStream(File file) 使用構(gòu)造方法可能發(fā)生IOException異常。輸入流通過調(diào)用read方法讀出源中的數(shù)據(jù) 。n FileOutputStream是OutputStream類的子類。 構(gòu)造方法: FileOutputStream(String name) FileOutputStream(File file) 使用構(gòu)造方法可能發(fā)生IOException異常。輸出流通過調(diào)用write方法把字節(jié)寫入到目的地 。讀取一個(gè)名為myfile.dat的文件 FileInputStream流經(jīng)常和BufferedInputStream流配合使用, FileOutputStream流經(jīng)常和BufferedOutputStream流配合使用類配合使用 提高讀寫效率。n BufferedInputStream類的一個(gè)常用的構(gòu)造方法是: BufferedInputStream(InputStream in);讀取文件A.txt常用下列方式: FileInputStream in=new FileInputStream(A.txt); BufferedInputStream bufferRead=new BufferedInputStream(in);n BufferedOutputStream類的一個(gè)常用的構(gòu)造方法是: BufferedOutputStream(OutputStream out);向文件B.txt寫入字節(jié)常用下列方式: FileOutputStream out=new FileOutputStream(B.txt); BufferedOutputStream bufferWriter=new BufferedOutputStream(out); 例5-6使用字符流讀寫文件 字節(jié)流不能直接操作Unicode字符,所以Java提供了字符流。由于漢字在文件中占用2個(gè)字節(jié),如果使用字節(jié)流,讀取不當(dāng)會(huì)出現(xiàn)亂碼現(xiàn)象,采用字符流就可以避免這個(gè)現(xiàn)象。在Unicode字符中,一個(gè)漢字被看做一個(gè)字符。 所有字符輸入流類都是Reader(輸入流)抽象類的子類。 所有字符輸出流都是Writer(輸出流)抽象類的子類。 Reader類中常用方法:l int read() l int read(char b)l int read(char b, int off, int len)l void close()l long skip(long numBytes) Writer類中常用方法: void write(int n) 輸出流寫入一個(gè)字符。 void write(char b) 向輸出流寫入一個(gè)字符數(shù)組。 void write(char b,int off,int length) void close() 關(guān)閉輸出流。 FileReader和FileWriter類是Reader和Writer的子類。 FileReader構(gòu)造方法: FileReader (String filename) FileReader(File file) FileWriter構(gòu)造方法: FileWriter (String filename) FileWriter (File file) FileReader流經(jīng)常和BufferedReader流配合使用; FileWriter流經(jīng)常和BufferedWriter流配合使用。 n BufferedReader流還可以使用方法 String readLine() 讀取一行;n BufferedWriter流還可以使用方法 void write(String s,int off,int length)將字符串s的一部分寫入文件. newLine() 向文件寫入一個(gè)行分隔符 文件上傳 用戶通過一個(gè)JSP頁面上傳文件給服務(wù)器時(shí),該JSP頁面必須含有File類型的表單,并且表單必須將ENCTYPE的屬性值設(shè)成multipart/form-data。File類型表單如下所示:FORM action=接受上傳文件的頁面 method=post ENCTYPE= multipart/form-data JSP引擎可以讓內(nèi)置對(duì)象request調(diào)用方法getInputStream()獲得一個(gè)輸入流,通過這個(gè)輸入流讀入用戶上傳的全部信息,包括文件的內(nèi)容以及表單域的信息。文件下載JSP內(nèi)置對(duì)象response調(diào)用方法getOutputStream()可以獲取一個(gè)指向用戶的輸出流,服務(wù)器將文件寫入這個(gè)流,用戶就可以下載這個(gè)文件了。當(dāng)提供下載功能時(shí),應(yīng)當(dāng)使用response對(duì)象向用戶發(fā)送HTTP頭信息,這樣用戶的瀏覽器就會(huì)調(diào)用相應(yīng)的外部程序打開下載的文件,response調(diào)用setHeader方法添加下載頭的格式如下: response.setHeader(Content-disposition,attachment;filename=下載的文件名字); 第 六章 數(shù)據(jù)庫JDBC的全稱為Java DataBase Connectivity,是一套面向?qū)ο蟮膽?yīng)用程序接口(API),制定了統(tǒng)一的訪問各類關(guān)系數(shù)據(jù)庫的標(biāo)準(zhǔn)接口,為各個(gè)數(shù)據(jù)庫廠商提供了標(biāo)準(zhǔn)接口的實(shí)現(xiàn)。通過JDBC技術(shù),開發(fā)人員可以用純Java語言和標(biāo)準(zhǔn)的SQL語句編寫完整的數(shù)據(jù)庫應(yīng)用程序,并且真正地實(shí)現(xiàn)了軟件的跨平臺(tái)性。注意:JDBC不能直接訪問數(shù)據(jù)庫,必須依賴于數(shù)據(jù)庫廠商提供的JDBC驅(qū)動(dòng)程序,通常情況下使用JDBC完成以下操作:(1)同數(shù)據(jù)庫建立連接;(2)向數(shù)據(jù)庫發(fā)送SQL語句;(3)處理從數(shù)據(jù)庫返回的結(jié)果。JDBC優(yōu)點(diǎn):(1)JDBC與ODBC十分相似,便于軟件開發(fā)人員理解;(2)JDBC使軟件開發(fā)人員從復(fù)雜的驅(qū)動(dòng)程序編寫工作中解脫出來,可以完全專著與業(yè)務(wù)邏輯的開發(fā);(3)JDBC支持多種關(guān)系型數(shù)據(jù)庫,大大增加了軟件的可移植性;(4)JDBC API是面向?qū)ο蟮?,軟件開發(fā)人員可以將常用的方法進(jìn)行二次封裝,從而提高代碼的重用性。JDBC缺點(diǎn):(1)通過JDBC訪問數(shù)據(jù)庫時(shí)速度將受到一定影響;(2)雖然JDBC API是面向?qū)ο蟮?,但通過JDBC訪問數(shù)據(jù)庫依然是面向關(guān)系的;(3)JDBC提供了對(duì)不同廠家的產(chǎn)品的支持,這將對(duì)數(shù)據(jù)源帶來影響。JDBC驅(qū)動(dòng)程序是用于解決應(yīng)用程序與數(shù)據(jù)庫通信的問題,它可以分為JDBC-ODBC Bridge、JDBC-Native API Bridge、JDBC-middleware和Pure JDBC Driver4種。第 七章 JSP與JavaBean7.1.1 bean的編寫與保存1.如果類的成員變量的名字是xxx,那么為了獲取或更改成員變 量的值,即獲取或更改屬性,類中必須提供兩個(gè)方法: getXxx()用來獲取屬性xxx setXxx() 用來修改屬性xxx 即方法的名字用get或set為前綴,后綴是將成員變量名字的首字母大寫的字符序列。對(duì)于boolean類型的成員變量,即布爾邏輯類型的屬性,允許使用“is”代替上面的“get”和“set”。3.類中聲明的方法的訪問屬性都必須是p
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《金庸群俠傳》秘籍大全一覽
- 線路巡視安全操作規(guī)程
- 補(bǔ)充偵查申請(qǐng)書
- 2025年工業(yè)互聯(lián)網(wǎng)平臺(tái)聯(lián)邦學(xué)習(xí)隱私保護(hù)技術(shù)產(chǎn)業(yè)生態(tài)構(gòu)建與協(xié)同創(chuàng)新策略報(bào)告001
- 寵物食品進(jìn)口市場分析報(bào)告:2025年市場規(guī)模與競爭格局
- 2025至2030光伏能源行業(yè)市場深度調(diào)研及前景趨勢與投資報(bào)告
- 2025至2030掛燙機(jī)行業(yè)市場占有率及投資前景評(píng)估規(guī)劃報(bào)告
- 農(nóng)村電商服務(wù)站社區(qū)團(tuán)購模式探索與實(shí)踐報(bào)告
- 2024學(xué)年上海市黃浦區(qū)高一語文下學(xué)期期末考試卷附答案解析
- 農(nóng)業(yè)科技成果轉(zhuǎn)化與農(nóng)村電商模式創(chuàng)新研究報(bào)告
- 中小學(xué)家長會(huì)期中期末家長會(huì)253
- 驅(qū)動(dòng)電機(jī)與電機(jī)控制器
- 2024年便攜式儲(chǔ)能行業(yè)分析報(bào)告
- 醫(yī)聯(lián)體協(xié)議書(2024版)
- 2023年全國職業(yè)院校技能大賽-中藥傳統(tǒng)技能賽項(xiàng)規(guī)程
- 11 《愛蓮說》對(duì)比閱讀-2024-2025中考語文文言文閱讀專項(xiàng)訓(xùn)練(含答案)
- 動(dòng)物園野生動(dòng)物馴養(yǎng)繁殖或馴養(yǎng)觀賞可行性研究報(bào)告
- 煤礦開掘技術(shù)操作規(guī)程
- 2023年上海市長寧區(qū)高三年級(jí)下冊(cè)二模英語試卷含詳解
- 肺功能進(jìn)修總結(jié)匯報(bào)
- GB/T 3428-2024架空導(dǎo)線用鍍鋅鋼線
評(píng)論
0/150
提交評(píng)論