版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
JSP程序設(shè)計(jì)本課程主要講述內(nèi)容:JSP技術(shù)基礎(chǔ)環(huán)境配置HTML基礎(chǔ)JSP語法JSP內(nèi)置對象JSP文件操作JSP中訪問數(shù)據(jù)庫ServletJavaBean需要具備的相關(guān)知識:數(shù)據(jù)庫基本知識網(wǎng)絡(luò)基礎(chǔ)知識Dreamweaver的使用Eclipse3.2Java語言(成為JSP高手必備)
本課程以實(shí)戰(zhàn)為導(dǎo)向。課后認(rèn)真自學(xué)上述相關(guān)基礎(chǔ)知識。布置的思考與練習(xí)題目,盡可能課后認(rèn)真上機(jī)實(shí)踐(經(jīng)濟(jì)管理學(xué)院機(jī)房已經(jīng)具備JSP環(huán)境)。如何成為一個優(yōu)秀的jsp程序員3、學(xué)習(xí)
JavaScript
學(xué)習(xí)怎么將
JavaScript在HTML中驗(yàn)證輸入的Form元素。也學(xué)習(xí)
JavaScript怎么能在一
HTML
頁以內(nèi)修改Form的元素。最后要求你能從一
HTML
頁內(nèi)的事件中觸發(fā)
JavaScript
Function。
訓(xùn)練時間:1~
2
個星期。4、學(xué)習(xí)并且理解你的Web
Server的更多細(xì)節(jié)。
熟悉Web
Server的特征,這是很重要的。
訓(xùn)練時間:2
天。如何成為一個優(yōu)秀的jsp程序員5、建立你的
JSP
Server
推薦以Tomcat開始。它可以很好地運(yùn)行JSP程序。當(dāng)你不能在生產(chǎn)使用Tomcat時,學(xué)習(xí)盡可能多的知識以便于更好的運(yùn)行程序。另外,
許多
JSP
程序員使用Tomcat。因此當(dāng)你遇到一個問題時,你將容易發(fā)現(xiàn)幫助。
安裝時間:1~
2
天。6、開始學(xué)習(xí)
JSP
。
基本的
JSP
學(xué)習(xí)通過的步驟
1到步驟6可以完成,
然后使用
JSP
對象和腳本寫
JSP
程序來聯(lián)系。學(xué)習(xí)
JSP
的另外一個方面可以學(xué)習(xí)怎么創(chuàng)建一個分布式的應(yīng)用程序。
訓(xùn)練時間:4
~
6
個星期。如何成為一個優(yōu)秀的jsp程序員7、學(xué)習(xí)更多的
JSP
server。
沒有關(guān)于更多的
JSP
Server當(dāng)然也可以運(yùn)行jsp程序。然而,
許多
JSP
server都由自己特殊的特征,可以讓你更好的理解你的JSP
工程。
學(xué)習(xí)更多的Jsp
server如何處理jsp程序是有必要的。同樣也可以優(yōu)化你的
JSP
應(yīng)用程序,并且使之運(yùn)行得更快而不出任何問題。
訓(xùn)練時間:2
~
7
天。
到現(xiàn)在,你已經(jīng)成為了熟練的
JSP
程序員。仍然有很多需要學(xué)習(xí),你可以考慮擴(kuò)展你的知識比如
DHTML
,
XML
,java證書,
JSP
Tag
Libraries
或
Servlets
,
看你想要造什么類型的網(wǎng)站而決定了。
這些訓(xùn)練是JSP
的核心。你不必都學(xué)習(xí)上面所有的,
取決于你在工程中分配到什么任務(wù)和你已經(jīng)有什么知識。但是這是成功地訓(xùn)練程序員的時間表。關(guān)鍵的單元是時間。平均的說,
5
個月時間確實(shí)能夠訓(xùn)練一個人
(
從開始到完成
)
成為一個對jsp熟悉程序員。5
個月時間似乎很長,但要成為一個資深的WEB程序員所學(xué)的東西遠(yuǎn)遠(yuǎn)不止這一些。本課程涉及的軟件Java開發(fā)工具包JDK1.5Tomcat5.5.7、resin2.xDreamweaver2004MXmySQL4.x、mySQL-Front3.1Eclipse3.2其它參考書籍:1.《JSP深入編程》希望電子出版社2.《網(wǎng)絡(luò)編程語言JSP實(shí)例教程》電子工業(yè)出版社3.《JSP/HTML編程實(shí)作教程
》希望電子出版社4..《JSP程序設(shè)計(jì)指南--初級程序員的基本技能》清華大學(xué)出版社5.《JSP入門與提高》清華大學(xué)出版社
4。安裝mySQL數(shù)據(jù)庫、mySQL-front管理程序MySQL是一個精巧的SQL數(shù)據(jù)庫管理系統(tǒng)。由于它的強(qiáng)大功能、靈活性、以及精巧的系統(tǒng)結(jié)構(gòu),受到了廣大自由軟件愛好者甚至是商業(yè)軟件用戶的青睞,特別是與Apache結(jié)合,為建立基于數(shù)據(jù)庫的動態(tài)網(wǎng)站提供了強(qiáng)大動力!MySQL有瑞典的T.c.X公司負(fù)責(zé)開發(fā)和維護(hù)。MySQL是一個真正的多用戶、多線程SQL數(shù)據(jù)庫服務(wù)器。MySQL
主要目標(biāo)是快速、健壯和易用。它可媲美任何昂貴的大型數(shù)據(jù)庫,但速度更快。自1996年以來,許多機(jī)構(gòu)一直都在使用MySQL。MySQL建立的基礎(chǔ)是業(yè)已用在高要求的生產(chǎn)環(huán)境多年的一套實(shí)用例程。盡管MySQL仍在開發(fā)中,但它已經(jīng)提供一個豐富和極其有用的功能集。MySQL的官方發(fā)音是“MyEssQueEll”(不是
MY-SEQUEL
)。5。安裝Eclipse
目前為止,大多數(shù)Java?程序員都聽說過Eclipse,它正迅速成為最流行的Java編程環(huán)境。在目前所有的IDE中,Eclipse可以說是最有發(fā)展前途的產(chǎn)品之一。Eclipse最初由OTI和IBM兩家公司的IDE產(chǎn)品開發(fā)組創(chuàng)建,起始于1999年4月。目前由IBM牽頭,圍繞著Eclipse項(xiàng)目已經(jīng)發(fā)展成為了一個龐大的Eclipse聯(lián)盟,有150多家軟件公司參與到Eclipse項(xiàng)目中,其中包括Borland、Rational
Software、Red
Hat及Sybase,最近Oracle也計(jì)劃加入到Eclipse聯(lián)盟中。Eclipse是否與其他花錢的IDE一樣好?答案非常確定!對于編碼、調(diào)試、重構(gòu)、單元測試等等,Eclipse可以與任何一種IDE匹敵,甚至比它們還要好。與昂貴的JBuilder2005版本相比,您可能會發(fā)現(xiàn)Eclipse對很多特性的支持都比JBuilder更好。6。下載MyEclipseEclipse插件,收費(fèi)軟件。使Eclipse支持EJB、JSP、Servlet等等。功能強(qiáng)大!下載后安裝即可。..用戶..用戶..用戶...WEB服務(wù)器數(shù)據(jù)庫服務(wù)器ODBC/JDBC數(shù)據(jù)請求返回?cái)?shù)據(jù)數(shù)據(jù)請求返回?cái)?shù)據(jù)Lan連接HTTP連接2.2JSP技術(shù)介紹
2.2.1Web編程技術(shù)
Web編程技術(shù)隨著計(jì)算機(jī)技術(shù)的進(jìn)步而不斷發(fā)展。早期的web技術(shù)主要以獲取靜態(tài)文本、信息為主。隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,靜態(tài)頁面不能適應(yīng)需求,動態(tài)網(wǎng)站技術(shù)應(yīng)運(yùn)而生。動態(tài)網(wǎng)站特性:
后臺數(shù)據(jù)庫支持
站點(diǎn)信息及時更新
動態(tài)顯示效果
補(bǔ)充說明:靜態(tài)網(wǎng)頁是預(yù)先編寫好的HTML文件,當(dāng)瀏覽器訪問時,WEB服務(wù)器將文件傳送給瀏覽器,整個過程中網(wǎng)頁內(nèi)容不被改變。HTML的表單、動態(tài)GIF圖、FLASH、Applet和瀏覽器端腳本不等于動態(tài)網(wǎng)頁。動態(tài)網(wǎng)頁可以看作是預(yù)先編寫好的HTML模板文件。當(dāng)瀏覽器訪問動態(tài)網(wǎng)頁時,WEB服務(wù)器根據(jù)一定的程序邏輯填寫模板,并將最終生成的內(nèi)容傳送給瀏覽器。特點(diǎn):適用于任何平臺、支持者眾多程序的執(zhí)行效率高擁有Java優(yōu)勢強(qiáng)大的服務(wù)器組件強(qiáng)大的數(shù)據(jù)庫支持Writeonce,runanywhere!錢途無量的JSP!提示:在國外,JSP+Servlet+J2EE已經(jīng)成為開發(fā)電子商務(wù)的主流技術(shù)。2.2JSP與主流動態(tài)網(wǎng)頁技術(shù)比較2.3JSP的運(yùn)行環(huán)境2.3.1JSP運(yùn)行環(huán)境需要的組件Java2軟件開發(fā)工具箱??梢栽趕un公司免費(fèi)下載。JSP引擎(JSP應(yīng)用服務(wù)器)。Resin、Tomcat、JRun、 JSWDK、Weblogic等等。2.3.3JSP執(zhí)行過程執(zhí)行過程:瀏覽器IETomcat2.3.4JSP程序的初步體驗(yàn)一個簡單的JSP程序:<%@pagecontentType="text/html;charset=gb2312"language="java"errorPage=""%><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>我的第一個JSP程序</title></head><body><%out.println(“Helloworld!”);%></body></html>3.2HTML文檔的基本結(jié)構(gòu) 一個基本的HTML文檔通常包含以下三對頂級標(biāo)記。1.HTML標(biāo)記<HTML>...</HTML>2.首部標(biāo)記<HEAD>...</HEAD> 首部標(biāo)記用于提供與Web頁有關(guān)的各種信息。在首部標(biāo)記中,可以使用:<TITLE>和</TITLE><STYLE>和</STYLE><SCRIPT>和</SCRIPT>等等。3.正文標(biāo)記<BODY>...</BODY> 正文標(biāo)記包含了文檔的內(nèi)容,文字、圖像、動畫、超鏈接以及其他HTML元素均位于該標(biāo)記中。正文標(biāo)記有下列屬性。(1)BACKGROUD:指定文檔背景圖像的URL地址,圖像平鋪在頁背景上。(2)BGCOLOR:指定文檔的背景顏色。(3)TEXT:指定文檔中文本的顏色。(7)ONLOAD:指定文檔首次加載時調(diào)用的事件處理程序。(8)ONUNLOAD:用于指定文檔卸載時調(diào)用的事件處理程序。顏色屬性的值有兩種表示方法:使用顏色名稱:例如紅色、綠色和藍(lán)色分別用red、green和blue表示;使用十六進(jìn)制格式數(shù)值:#RRGGBB來表示,RR、GG和BB分別表示顏色中的紅、綠、藍(lán)三基色的兩位十六進(jìn)制數(shù)據(jù)。4.HTML文檔的基本結(jié)構(gòu)HTML文檔的基本結(jié)構(gòu)可以表示如下:<HTML><HEAD><TITLE>標(biāo)題文字</TITLE><HEAD><BODY>文本、圖像、動畫、HTML指令等</BODY></HTML>5添加注釋 注釋由開始標(biāo)記<!--和結(jié)束標(biāo)記-->構(gòu)成。3.3設(shè)置文本格式3.3.1分段與換行 段落是文檔的基本信息單位。將文檔劃分為段落,可以通過使用分段標(biāo)記、換行標(biāo)記、標(biāo)題標(biāo)記或插入水平線來實(shí)現(xiàn)。1.分段標(biāo)記P2.換行標(biāo)記BR<BR>標(biāo)記強(qiáng)行規(guī)定了當(dāng)前行的中斷,使后續(xù)內(nèi)容在下一行顯示。3.標(biāo)題標(biāo)記Hn其中n的取值是1到6;<H1>...</H1>標(biāo)記表示字體最大的標(biāo)題,<H6>…</H6>標(biāo)記表示字體最小的標(biāo)題。4.水平線標(biāo)記HR HR標(biāo)記在文檔中添加一條水平線,用來分開文檔的兩個部分。該標(biāo)記有以下屬性: (1)ALIGN:指定線的對齊方式,取值為left(左對齊)、center(居中對齊)或right(右對齊),默認(rèn)值為center。 (2)COLOR:指定線的顏色。 (3)NOSHADE:若指定該項(xiàng),則顯示一條無陰影的實(shí)線。 (4)SIZE:指定線的寬度,以像素為單位。 (5)WIDTH:指定線的長度,單位可以是像素或百分比(占頁面寬度的百分比)。3.3.2設(shè)置段落對齊方式 使用ALIGN屬性來設(shè)置段落的對齊方式。ALIGN屬性的取值可以是:left(左對齊)、center(居中對齊)、right(右對齊)以及justify(兩邊對齊)。3.3.3設(shè)置字體、字號和顏色 字體標(biāo)記<FONT>...</FONT>來設(shè)置文本的字符格式,并通過FACE、SIZE和COLOR屬性來設(shè)置文本的字體、字號和顏色。例如:<FONTFACE="楷體_GB2312,仿宋_GB2312,宋體">超文本標(biāo)記語言</FONT>3.3.4設(shè)置字符樣式<B>...</B> 粗體
<BIG>...</BIG> 大字體 <I>...</I> 斜體
<S>...</S> 刪除線 <SMALL>...</SMALL> 小字體<STRIKE>...</STRIKE> 刪除線<SUP>...</SUP> 上標(biāo)<SUB>...</SUB> 下標(biāo)<TT>...</TT> 固定寬度字體<U>...</U> 下劃線3.3.5插入特殊字符可以使用兩種方式來輸入特殊符號:即使用字符實(shí)體名稱或數(shù)字表示方式。例如,若要在網(wǎng)頁中輸入一個無間斷空格,可以輸入“ ”或“ ”,等等。表2.3列出了常用特殊符號的實(shí)體名稱或數(shù)字表示。3.4使用圖像 使用IMG標(biāo)記在網(wǎng)頁中插入一個圖像。1.SRC和ALT屬性IMG標(biāo)記有許多屬性,其中最常用的是SRC和ALT屬性SRC屬性給出圖像文件的URL地址,圖像可以是JPEG文件、GIF文件或PNG文件。ALT屬性給出圖像的簡單文本說明。2.指定圖像的高和寬當(dāng)使用IMG標(biāo)記在網(wǎng)頁中插入一個圖像時,可以通過HEIGHT和WIDTH屬性來設(shè)置圖像的高度和寬度3.5使用字幕和背景音樂3.5.1插入字幕
<MARQUEE>要滾動顯示的文本信息</MARQUEE>MARQUEE標(biāo)記的主要屬性有:(1)ALIGN:指定字幕與周圍文本的對齊方式,其取值可以是top、middle或bottom。(2)BEHAVIOR:指定文本動畫的類型,其取值可以是scroll、slide或alternate。(3)BGCOLOR:指定字幕的背景顏色。(4)DIRECTION:指定文本的移動方向,其取值可以是down、left、right或up。(5)HEIGHT:指定字幕的高度,以像素或百分比為單位。(6)HSPACE:整數(shù),指定字幕的外部邊緣與瀏覽器窗口之間的左右邊距(像素)。(7)SCROLLAMOUNT:整數(shù),指定字幕文本每次移動的距離,以像素為單位。(8)SCROLLDEALY:整數(shù),指定與前段字幕文本延遲多少ms后重新開始移動文本。(9)VSPACE:整數(shù),指定字幕的外邊緣與瀏覽器窗口之間的上下邊距(像素)。3.5.2插入背景音樂 使用<BGSOUND>標(biāo)記在網(wǎng)頁中添加背景音樂,該標(biāo)記只允許放置在HEAD部分。<BGSOUND>標(biāo)記的屬性:(1)BALANCE:整數(shù),指定如何將聲音分成左聲道和右聲道。取值為-10,000~+10,000,默認(rèn)值為0。(2)LOOP:整數(shù),指定聲音播放的次數(shù)。如果設(shè)置為0,則播放一次;如果設(shè)置為大于0的整數(shù),則播放指定的次數(shù);如果設(shè)置為-1,則聲音反復(fù)播放,直到頁面卸載。(3)SRC:指定要播放的聲音文件的URL。常用的聲音文件類型是波形文件(.wav)、MIDI文件(.mid)、AIFF文件(.aif)、AU文件(.au)以及MP3文件(*.mp3)等。(4)VOLUME:整數(shù),指定音量高低,其取值為-10,000~0,默認(rèn)值為0。3.6使用表格 <TABLE> <CAPTION>表格標(biāo)題文字<CAPTION> <TR> <TD>標(biāo)題</TD><TD>標(biāo)題</TD>…<TD>標(biāo)題</TD> </TR> <TR> <TD>數(shù)據(jù)</TD><TD>數(shù)據(jù)</TD>…<TD>數(shù)據(jù)</TD> </TR> <TR> <TD>數(shù)據(jù)</TD><TD>數(shù)據(jù)</TD>…<TD>數(shù)據(jù)</TD> </TR> …… <TR> <TD>數(shù)據(jù)</TD><TD>數(shù)據(jù)</TD>…<TD>數(shù)據(jù)</TD> </TR> </TABLE>3.7使用超鏈接1.理解超鏈接
超鏈接是由源端點(diǎn)到目標(biāo)端點(diǎn)的一種跳轉(zhuǎn)。主要形式:(1)文件鏈接:這種鏈接的目標(biāo)端點(diǎn)是的一個文件,它可以位于當(dāng)前網(wǎng)頁所在的服務(wù)器,也可以位于其他服務(wù)器。<ahref=“”>名稱</a>(2)E-mail鏈接:通過這種鏈接可以啟動電子郵件客戶端程序(如Outlook或FoxMail等),并允許訪問者向指定的地址發(fā)送郵件。<AHREF="mailto:?subject=關(guān)于ASP動態(tài)網(wǎng)頁設(shè)計(jì)">給我寫信</A>2.理解路徑 路徑是指從站點(diǎn)根文件夾或當(dāng)前文件夾起到目標(biāo)文件所經(jīng)過的路線。路徑有以下幾種類型:(1)絕對路徑:也稱為絕對URL,它給出目標(biāo)文件的完整URL地址,包括傳輸協(xié)議在內(nèi)。如果要鏈接的文件位于外部服務(wù)器上,則必須使用絕對路徑。(2)相對路徑:也稱為相對URL,是指以當(dāng)前文檔所在位置為起點(diǎn)到目標(biāo)文檔所經(jīng)過的路徑。3.8使用表單什么是表單? 表單是用來收集站點(diǎn)訪問者信息的域集。3.8.1創(chuàng)建表單在HTML語言中,表單通過FORM標(biāo)記來定義,基本語法格式如下:<FORMNAME="字符串"METHOD="get|post"ACTION="字符串">……</FORM>FORM標(biāo)記具有以下屬性:(1)NAME:指定表單的名稱,以標(biāo)識表單。命名表單后,可以使用腳本語言(如VBScript或JScript)來引用或控制該表單(2)METHOD:post、get。(3)ACTION:指定將要接收表單數(shù)據(jù)的服務(wù)器端程序或動態(tài)網(wǎng)頁的網(wǎng)址。(4)onSubmit:指定提交表單時調(diào)用的事件處理程序。(5)onReset:指定重置表單時調(diào)用的事件處理程序。(6)TARGET:指定一個目標(biāo)窗口,其取值為:_blank、_parent、_self、_top。3.8.2使用輸入型表單控件1。input輸入域格式:<inputtype=“”name=“”value=“”>姓名<inputname=“xm"type="text"size="60"maxlength="60">籍貫<inputname=“jg"type="text"size="60"maxlength="100"><inputtype=“submit”name=“Submit”value=“提交”>此外:type的取值還可能是:password、checkbox、radio、image、hidden、reset等。2。下拉列表框用于列表選擇。例如:<selectname="select"><optionvalue="湖北"selected>湖北</option><optionvalue="湖南">湖南</option><optionvalue="江蘇">江蘇</option><optionvalue="浙江">浙江</option><optionvalue="福建">福建</option></select>3。多行文本框
格式:
<textareaname=“”rows=“”cols=“”>
例如:
<textareaname="practice"cols="92"rows="8"id="practice"class="intxt"></textarea>
3.9JavaScript用法:<scriptlanguage=javascript>…</script>或者:<scriptlanguage=javascriptsrc=“myfuncs.inc"></script>示例1數(shù)字的確認(rèn)functionisDigit(theNum){vartheMask=‘0123456789’;if(theNum==null||theNum.length==0)returnfalse;iftheMask.indexOf(theNum)==-1)returnfalse;returntrue;}示例2檢查輸入是否為空
4.3.2檢查輸入是否為空(包括空格)
functionisEmail(theEmail){
varemail=theEmail;
email=email.replace(/(^\s*)|(\s*$)/g,"");
if(email==""){
alert(“請輸入您的Email地址,地址不能為空!");
returnfalse;
}}
注意:如何實(shí)現(xiàn)光標(biāo)自動定位?示例3電子郵件地址格式的確認(rèn)functionisEmail(theEmail){varemail=theEmail;email=email.replace(/(^\s*)|(\s*$)/g,"");if(email==""){alert(“請輸入您的Email地址,地址不能為空!");
returnfalse;}if(email!==""){varnotValid=false;varuseremail=email;if(useremail.indexOf("@")<=0)notValid=true;if(useremail.charAt(useremail.length-1)=="@")notValid=true;if(useremail.indexOf(".")<=0||useremail.indexOf(".")<=useremail.indexOf("@"))notValid=true;if(useremail.indexOf(".")<=useremail.indexOf("@")+1)notValid=true;if(useremail.indexOf(".")==(useremail.length-1))notValid=true;if(notValid){alert("您的Email地址不正確,請重新輸入!");
return(false);}}}思考與練習(xí):
1.如何實(shí)現(xiàn)不規(guī)則表格?
2.如何使用表單提交進(jìn)行客戶端確認(rèn)?
4.1.1開始和結(jié)束標(biāo)記
以<%開頭,以%>結(jié)尾,格式:
<%程序內(nèi)容%>例如:<%out.println(“歡迎訪問本網(wǎng)站!”);%>4.1.2注釋注釋是幫助自己或別人閱讀程序。注釋可以有兩種形式,HTML注釋、JSP注釋。HTML注釋:<!--注釋內(nèi)容-->第四章JSP語法基礎(chǔ)
4.1JSP基本語法規(guī)則HTML注釋:<!--注釋內(nèi)容
-->注釋的內(nèi)容會在客戶端的HTML源代碼中出現(xiàn)。例如:<!--這是個用戶登錄程序login.jsp--><!--編寫者:張三-->JSP注釋客戶端查看源代碼時看不到(安全考慮)。格式:<%--注釋內(nèi)容
--%>
示例:<%@pagecontentType="text/html;charset=gb2312"language="java"errorPage=""%><%--文件名:comms.jsp編寫者:張三說明:測試程序--%><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>用戶留言</title></head><body><!--這是一個測試程序--><%--顯示helloworld!--%><%out.println(“Helloworld!”);%></body></html>4.1.3基本數(shù)據(jù)類型1)整型三種形式:十進(jìn)制、八進(jìn)制(0開頭)、十六進(jìn)制(0x開頭)。具體類型如下:byte類型有符號,范圍-128~127。例如:bytea,b=12;short類型(很少使用)有符號,范圍-32768~32767。例如:shortd,e=234;int類型有符號,范圍-2147483684~2147483683。例如:intx,y=12;long類型有符號,范圍-264~264-1。例如:longx,y=-0x12;2)實(shí)型Float類型(單精度)例如:floatx,y=123.56;double類型(雙精度)例如:floatx,y=123.56;3)布爾型boolean只有true和false兩種值例如:booleanx,y,z=false;3)字符型char用單引號括起來。例如:charxx=’123’;思考:charrtn=’\n’;表示什么?4)字符串型String用雙引號括起來的一串字符。例如:StringmyStr=“xyz”;注意:是對象,而非數(shù)據(jù)!有以下重要方法:length()、booleanequals(Stringstr)Stringsubstring(int
beginIndex)Stringsubstring(intbeginIndex,intendIndex)booleanstartsWith(Stringprefix)intindexOf(Stringstr)向后intindexOf(Stringstr,intfromIndex)向后StringtoLowerCase()StringtoUpperCase()Stringtrim()StringreplaceAll(Stringregex,Stringreplacement)該方法用字符串replacement的內(nèi)容替換當(dāng)前字符串中遇到的所有和字符串regex相一致的子串,并將產(chǎn)生的新字符串返回。思考:如何判斷一個字符串是否是一個合法的email地址?
4.1.4運(yùn)算符關(guān)系運(yùn)算符用來比較兩個值,并返回布爾型的值true或false。布爾邏輯運(yùn)算符進(jìn)行布爾邏輯運(yùn)算,包括&&、||、!等intx=12,y=85;booleanz=(x<21)&&(y>78);算術(shù)運(yùn)算符進(jìn)行加、減等運(yùn)算。inti=6,j,k,s;k=(j=++i);i,j,k=?s=(j=i--);i,j,s=?三目條件運(yùn)算符格式:
x?y:z;
上面的三目條件運(yùn)算的規(guī)則是:先計(jì)算表達(dá)式x的值,若x為真,則整個三目運(yùn)算的結(jié)果是表達(dá)式y(tǒng)的值;若x為假,則整個三目運(yùn)算的結(jié)果是表達(dá)式z的值。下面的例子實(shí)現(xiàn)了從兩個數(shù)中找出較大的數(shù)的功能。
inta=3,b=4;intmax=a>b?a:b;
三目條件運(yùn)算是可以嵌套的,如有以下的語句,則max表示的是a、b、c三個數(shù)中的最大值,其值為5。
inta=3,b=4,c=5;intmax=(a>b?a:b)>c?(a>b?a:b):c;4.2JSP聲明1、格式:<%declaration;declaration;…%>例如:<%intx=10;Stringy=”ok”;%>2、JSP表達(dá)式和程序段Jsp表達(dá)式的語法形式:<%=表達(dá)式%>例如:<%intnum=100;%>數(shù)值為:<%=num%>Jsp程序段包含在<%和%>之間的有效程序段。具體形式:<%你的程序代碼%>例如:<%If(sex==null)out.println(”請輸入性別信息!”);Elseif(sex.equals(”男”))out.println(”男!”);%>4.3.1結(jié)構(gòu)化程序設(shè)計(jì)的三種基本流程
1.自頂向下2.逐步求精3.模塊化
除了以上的原則,結(jié)構(gòu)化程序設(shè)計(jì)還有一個重要的規(guī)定,那就是只能使用“順序結(jié)構(gòu)”、“選擇結(jié)構(gòu)”、“循環(huán)結(jié)構(gòu)”這三種基本結(jié)構(gòu)(或由它們派生出來的結(jié)構(gòu))來定義程序的流程。三種基本流程控制結(jié)構(gòu)示意圖分別如圖3-1所示。4.3JSP流程控制語句4.3.2選擇結(jié)構(gòu)選擇結(jié)構(gòu)又稱為分支結(jié)構(gòu),是在兩種或兩種以上的多條執(zhí)行路徑中選擇一條執(zhí)行的控制結(jié)構(gòu)。1.if—else語句if(條件表達(dá)式){語句組1;}else{語句組2;}在if—else語句中,else部分是選擇性的。經(jīng)??梢钥吹街挥衖f語句,而沒有else語句的情況。在這種情況下,當(dāng)測試條件為假時如不需做任何事,else部分可被省略。這時,其語法形式如下:if(條件表達(dá)式){語句組;}思考:求3個數(shù)中的最大者?2.switch語句
switch語句(又稱開關(guān)語句)是和case語句一起使用的,其功能是根據(jù)某個表達(dá)式的值在多個case引導(dǎo)的多個分支語句中選擇一個來執(zhí)行。它的一般格式如下:switch(表達(dá)式){case判斷值1:語句塊1case判斷值2:語句塊2 ……case判斷值n:語句塊ndefault:語句塊n+1}
switch后面括號中表達(dá)式的值必須是符合byte,char,short,int類型的常量表達(dá)式,而不能用浮點(diǎn)類型或long類型,也不能為一個字符串。一個switch語句可以代替多個if—else語句組成的分支結(jié)構(gòu),而switch語句從思路上顯得更清晰。 floata=9,b=3,result=0; charop='+'; switch(op) { case'+': result=a+b; case'-': result=a-b; case'*': result=a*b; case'/': result=a/b; default: result=0;} out.println("result="+result);4.3.3循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)是程序中一種重要的基本結(jié)構(gòu),是指在一定的條件下反復(fù)執(zhí)行某段程序,被反復(fù)執(zhí)行的這段程序稱為“循環(huán)體”。Java中有三種語句來實(shí)現(xiàn)循環(huán)結(jié)構(gòu),分別是while,do-while和for語句。1.while語句while語句的格式如下:while(條件表達(dá)式){ 循環(huán)體語句;}例:用while語句計(jì)算10! intn=10; longresult=1;
while(n>=1)result*=n--;//改寫該語句? out.println("10!="+result);2.do-while語句
do-while語句的格式如下:do{ 循環(huán)體語句;}while(條件表達(dá)式)
例:用do-while語句計(jì)算10的階乘 intn=10; longresult=1; do result*=n--; while(n>=1); System.out.println("10!="+result);3.for語句for(表達(dá)式1;表達(dá)式2;表達(dá)式3){ 循環(huán)體語句;}for語句的執(zhí)行過程:(1)在循環(huán)剛開始時,先計(jì)算表達(dá)式1。(2)根據(jù)表達(dá)式2的值來決定是否執(zhí)行循環(huán)體。表達(dá)式2是一個返回布爾值的表達(dá)式,若該值為假,將不執(zhí)行循環(huán)體,并退出循環(huán);若該值為真,將執(zhí)行循環(huán)體。(3)執(zhí)行完一次循環(huán)體后,計(jì)算表達(dá)式3。(4)轉(zhuǎn)入第(2)步繼續(xù)執(zhí)行。
例1: intn; longresult; for(n=10,result=1;n>0;n--) result*=n; out.println("10!="+result);例2: for(i=0;i<2;i++) for(j=0;j<2;j++) for(k=0;k<2;k++) { out.print(i+""+j+""+k); out.println(); }4.3.4跳轉(zhuǎn)語句 跳轉(zhuǎn)語句用來實(shí)現(xiàn)循環(huán)執(zhí)行過程中的流程轉(zhuǎn)移。有兩種跳轉(zhuǎn)語句:break語句和continue語句。 其中,break用于強(qiáng)行退出循環(huán),不執(zhí)行循環(huán)中剩余的語句。而continue則停止執(zhí)行當(dāng)前的循環(huán),開始新的循環(huán)。intn;for(n=1;n<=10;n++){if(n%2==0)break;//修改為continue結(jié)果如何?out.println("n="+n);}4.3.5異常處理語句 當(dāng)發(fā)生例外時,采用異常處理機(jī)制。Java采用try-catch-finally結(jié)構(gòu)處理錯誤。try-catch的實(shí)際意思是:嘗試這塊可能導(dǎo)致異常的代碼。如果它執(zhí)行正常,那么繼續(xù)執(zhí)行下面的程序。如果該代碼無法執(zhí)行,捕獲該異常并對它進(jìn)行處理。基本形式:try{//程序塊}catch(ExceptionTypee){//對ExceptionType的處理}例如:try{File(“c:/inc");…}catch(Exceptione){out.println(“無法找到文件!");}
假定在你的代碼中有一些動作,不管發(fā)生什么情況,無論異常是否被拋出,你都必須執(zhí)行這些操作。則需要使用finally子句。例如:try{readTextfile();}catch(IOExceptione){out.println(”該文件不存在!”);}finally{closeTextfile();}總結(jié)一下try-catch-finally結(jié)構(gòu)的形式:try{//程序塊}catch(ExceptionTypee){//對ExceptionType的處理}finally{//必須處理的程序語句}4.4結(jié)合使用JSP和HTMLJSP程序中除了普通HTML代碼外,還可以嵌入Java程序代碼,二者可以混合使用。例如:<html><head><title>示例</title></head><body><%intnum=100;Out.println(”welcome!”);%><b>數(shù)值為:<%=num%></b></body></html>思考:如何利用JSP語句輸出斜體的“武漢科技學(xué)院”?思考與練習(xí):
1.JSP注釋與HTML注釋的差異?
2.JSP中如何輸出HTML標(biāo)記?
3.試說明異常機(jī)制?第五章JSP的頁面元素
5.1JSP指令
5.2JSP動作語法5.1JSP指令
1.Page指令“Page”指令用于定義JSP文件中的全局屬性。<%@page[language="java"][import="{package.class|package.*},..."][session="true|false"][buffer="none|8kb|sizekb"]
[contentType="charset=characterSet|"text/html;charset=ISO-8859-1"][isErrorPage="true|false"]<%@pagecontentType="text/html;charset=GBK"language="java"import="java.sql.*"errorPage=""%><%@pagebuffer="32kb"%><%@pageimport="java.util.Iterator"%><%@pageimport="java.util.Vector"%><%@pageimport="java.util.Date"%><%@pageimport="java.util.GregorianCalendar"%><%@tagliburi="weblogic-tags.tld"prefix="wl"%><jsp:useBeanid="submystr"scope="application"class="dbbeans.substr"/><html><head><metahttp-equiv="Content-Type"content="text/html;charset=GBK"><title>武漢科技學(xué)院畢業(yè)生就業(yè)指導(dǎo)服務(wù)中心</title>…特別說明:頁面緩存緩存是一種用于提高系統(tǒng)性能節(jié)省操作時間的技術(shù),數(shù)據(jù)庫產(chǎn)品利用它可以提高系統(tǒng)的吞吐率,服務(wù)器利用它可以提高性能。緩存是將響應(yīng)內(nèi)容臨時保存在服務(wù)器的內(nèi)存中,然后在請求處理完畢之后發(fā)回給所調(diào)用的瀏覽器。在Web應(yīng)用程序中,提高系統(tǒng)性能最有效的手段是在需要時緩存頁面的輸出。在JSP頁面最好使用輸出緩存功能。緩存設(shè)置方法:采用JSP標(biāo)記通常情況下,默認(rèn)緩存大小為8KB。緩存設(shè)置格式:<%@pagebuffer="8kb"%>在大多數(shù)Web應(yīng)用程序中,緩存大小至少應(yīng)為32kb,犧牲這么一點(diǎn)額外的內(nèi)存是很值得的。2.include指令include:向當(dāng)前頁中插入一個靜態(tài)文件的內(nèi)容。格式如下:<%@includefile=“網(wǎng)頁文件"%>示例:<%@pagecontentType="text/html;charset=GBK"language="java"import="java.sql.*"errorPage=""%><%@pagebuffer="32kb"%><html><head><metahttp-equiv="Content-Type"content="text/html;charset=GBK"><title>武漢科技學(xué)院畢業(yè)生就業(yè)指導(dǎo)服務(wù)中心</title><metaname="keywords"content="武漢科技學(xué)院畢業(yè)生就業(yè)指導(dǎo)服務(wù)中心"></head><bodytopmargin="0"class="scrolbar"><center><metaname="keywords"content="武漢科技學(xué)院畢業(yè)生就業(yè)指導(dǎo)服務(wù)中心"></head><bodytopmargin="0"class="scrolbar"><center><%@includefile="getdayvisit.jsp"%><%@includefile="top.jsp"%><%@includefile="body.jsp"%><%@includefile="bottom.jsp"%></center></body></html>3.taglib指令JSP語法<%@tagliburi="URIToTagLibrary"prefix="tagPrefix"%>用于引入定制標(biāo)簽庫taglib指令屬性1.uri="URIToTagLibrary"UniformResourceIdentifier(URI)根據(jù)標(biāo)簽的前綴對自定義的標(biāo)簽進(jìn)行唯一的命名,URI可以是以下的內(nèi)容:UniformResourceLocator(URL),由RFC2396定義,可以從以下位置查看(/jkorpela/rfc/2396/full.html)。
UniformResourceName(URN),由RFC2396定義一個相對或絕對的路徑
可以是標(biāo)簽庫描述文件2.prefix="tagPrefix"表示標(biāo)簽在JSP中的名稱。在自定義標(biāo)簽之前的前綴,比如,在<public:loop>中的public,如果這里不寫public,那么這就是不合法的。請不要用jsp,jspx,java,javax,servlet,sun,和sunw做為你的前綴,這些已被Sun公司聲明保留。示例:
<%@pagecontentType="text/html;charset=GBK"language="java"import="java.sql.*"errorPage=""%>
<%@pagebuffer="32kb"%>
<%@tagliburi="weblogic-tags.tld"prefix="wl"%>
<html><head><metahttp-equiv="Content-Type"content="text/html;charset=GBK">
<title>武漢科技學(xué)院畢業(yè)生就業(yè)指導(dǎo)服務(wù)中心</title>
<metaname="keywords"content="武漢科技學(xué)院畢業(yè)生就業(yè)指導(dǎo)服務(wù)中心">
</head>
<bodytopmargin="0"class="scrolbar">
<center>
<%@includefile="getdayvisit.jsp"%>
<%@includefile="top.jsp"%>
<%@includefile="body.jsp"%>
<%@includefile="bottom.jsp"%>
</center>
</body>
</html>5.2JSP動作語法
1.<jsp:forward>
2.<jsp:include>
3.<jsp:useBean>1.<jsp:forward>JSP語法格式如下:1.<jsp:forwardpage={"relativeURL"|"<%=expression%>"}/>2.<jsp:forwardpage={"relativeURL"|"<%=expression%>"}><jsp:paramname="parameterName"value="{parameterValue|<%=expression%>}"/>[<jsp:param…/>]</jsp:forward>(“[<jsp:param…/>]”指可以有多個“<jsp:param/>”標(biāo)記。)1、page="{relativeURL|<%=expression%>}"這里是一個表達(dá)式或是一個字符串用于說明你將要定向的文件或URL。這個文件可以是JSP,程序段,或者其它能夠處理request對象的文件(如asp,cgi,php)。
2.<jsp:paramname="parameterName"value="{parameterValue|<%=expression%>}"/>向一個動態(tài)文件發(fā)送一個或多個參數(shù),這個文件必須是動態(tài)文件。如果想傳遞多個參數(shù),可以在一個JSP文件中使用多個“<jsp:param>”;“name”指定參數(shù)名,“value”指定參數(shù)值。<jsp:forward>例子<%@pagecontentType="text/html;charset=gb2312"%><html><head><title>test</title> </head> <body> <jsp:forwardpage="forwardTo.jsp"> <jsp:paramname="userName"value="riso"/> </jsp:forward> </body></html>forwardTo.jsp<%@pagecontentType="text/html;charset=gb2312"%><!--forwardTo.jsp--><% StringuseName=request.getParameter("userName"); StringoutStr="謝謝光臨!"; outStr+=useName; out.println(outStr); %>運(yùn)行結(jié)果(TOMCAT)2.<jsp:include>
<jsp:include>包含一個靜:態(tài)或動態(tài)文件.
常用格式如下:
<jsp:includepage=“網(wǎng)頁文件”/>
思考:何時使用<jsp:include>,何時使用<%@includefile=“網(wǎng)頁文件”%>?3.<jsp:useBean>
在介紹JavaBean時再討論思考與練習(xí):
1)掌握文件包含。
2)制作一個申請免費(fèi)email的表單,要求填寫:用戶名、密碼、確認(rèn)密碼、性別、地址,其中性別用單選按鈕,用戶名、、密碼為必填項(xiàng)且不能為空。請用客戶端確認(rèn)實(shí)現(xiàn)上述功能。
3)上道題目中用戶填寫的內(nèi)容顯示在屏幕上。
4)編寫一個程序,驗(yàn)證用戶輸入的email地址是否正確(使用客戶端確認(rèn))。
5)編寫一個用戶登錄的jsp網(wǎng)頁,若用戶名為aaa,密碼為bbb,則顯示歡迎該用戶訪問的字樣,否則顯示非法用戶。要求使用服務(wù)器端確認(rèn)。
6)理解緩存的使用。第六章JSP的內(nèi)建對象
·request請求對象
·response響應(yīng)對象
·session會話對象
·application應(yīng)用程序?qū)ο?/p>
·out輸出對象1.out“out”對象代表了向客戶端發(fā)送數(shù)據(jù)的對象。out.print()out.println();out.close()out的使用
例如:out.println(“武漢”);
<%out.println("aaaaaaaaaaa");
out.close();
out.println("bbbb");%>
思考:如何輸出一個換行,或者斜體的aaa?2.request用于獲取客戶端的輸入信息。主要有以下方法:getParameter(Stringname)(很重要)獲得客戶端傳給服務(wù)器端的參數(shù)值Stringusrme=request.getParameter(“username”);getRequestURI()獲得所請求的URL地址getServerName()
獲得服務(wù)器名稱
getRemoteUser()
獲得登錄用戶名
getServerPort()
獲得服務(wù)器提供HTTP服務(wù)的端口號
getRemoteAddr()(很重要)
獲得客戶端的IP地址。
getRemoteHost()
獲得客戶端計(jì)算機(jī)名稱。一般為IP地址,同上request對象示例<html><body>
<formaction="./Hello_req.jsp">姓名<inputtype="text"name="UserName">
<inputtype="submit"value="提交">
</form></body></html>request對象示例(Hello_req.jsp<%@pagecontentType="text/html;gb2312"%><%@pageimport="java.util.*"%><HTML><BODY>你好,<%!StringName;%><%Name=request.getParameter("UserName");%><%=Name%>,今天是<%Datetoday=newDate();%><%=today.getDate()%>號,星期<%=today.getDay()%></BODY></HTML>request對象示例(輸出結(jié)果)<HTML><BODY>你好,獨(dú)孤求敗,今天是9號,星期1</BODY></HTML>3.response對象用于處理HTTP信息。有以下方法:setHeader(Stringname,Stringvalue)發(fā)送HTTP信息,控制客戶端和服務(wù)器端連接。例如:Response.setHeader(“Location”,”.”);Response.setHeader(“Refresh”,”2”);sendRedirect(Stringurl)response.senRedirect(“.”);4.session對象“session”
對象代表服務(wù)器與客戶端所建立的會話,當(dāng)需要在不同的JSP頁面中保留客戶信息的情況下使用,比如在線購物、客戶軌跡跟蹤等。“session”
對象建立在cookie的基礎(chǔ)上,所以使用時應(yīng)注意判斷一下客戶端是否打開了cookie。常用的方法包括getId、getValue、getValueNames和putValue等。
session對象說明:HTTP是無狀態(tài)(stateless)協(xié)議;WebServer對每一個客戶端請求都沒有歷史記憶;Session用來保存客戶端狀態(tài)信息;由WebServer寫入;存于客戶端;客戶端的每次訪問都把上次的session記錄傳遞給WebServer;WebServer讀取客戶端提交的session來獲取客戶端的狀態(tài)信息;理解session:
session對象代表服務(wù)器與客戶端所建立的會話。當(dāng)需要在不同的JSP頁面中保留客戶信息的情況下使用,比如在線購物、客戶軌跡跟蹤等。例如:在網(wǎng)上商店站點(diǎn),你做出的每一個購買決定都會放入購物車,他將收集你要購買的商品,以便一次性付錢。即使瀏覽了幾百個網(wǎng)站,訂購了數(shù)十商品,購物車也能記住你想購買的所有商品。這是因?yàn)閃EB應(yīng)用程序有能力記錄跟蹤會話。
記住:每個用戶都有自己的sessionSession的常用方法:setAttribute(參數(shù)名,參數(shù)值):設(shè)置指定name的屬性值value,并存儲在session中。例如:session.setAttribute(“myname”,”tom”);getAttribute(參數(shù)名):獲取與參數(shù)名相聯(lián)系的屬性值。例如:session.getAttribute(“myname”);removeAttribute(參數(shù)名):刪除與指定參數(shù)名相聯(lián)系的屬性。例如:session.removeAttribute(“myname”);應(yīng)用:可以在同一個網(wǎng)站的不同頁面之間共享信息。session對象示例(Form表單—Logon_session.html)<html><body>
<formaction="./Logon_session.jsp">姓名<inputtype="text"name="UserName">
<inputtype="submit"value="提交">
</form></body></html>session對象示例Logon_session.jsp<%@page
contentType="text/html;gb2312"
%><%@page
import="java.util.*"
%><HTML><BODY>
<%
StringName=request.getParameter("UserName");
session.putValue("LogName",Name);
%>你的名字"<%=Name%>"已經(jīng)寫入session<br><ahref='./check_session.jsp'>check</a></BODY></HTML>session對象示例(Check_session.jsp)<%@pagecontentType="text/html;gb2312"%><HTML><BODY>
<%StringyourName=(String)session.getValue("LogName");if(yourName==null){
%>您還未登錄
<%}else{
%>
"<%=yourName%>"已經(jīng)登錄
<%}
%></BODY></HTML>5.application對象“application”對象負(fù)責(zé)提供應(yīng)用程序在服務(wù)器中運(yùn)行時的一些全局信息,常用的方法有g(shù)etMimeType和getRealPath等。application對象負(fù)責(zé)提供應(yīng)用程序在服務(wù)器中運(yùn)行時的一些全局信息。setAttribute(參數(shù)名,參數(shù)值)
例如:
application.setAttribute("counter","1");getAttribute(參數(shù)名)
例如:
application.getAttribute("counter");應(yīng)用:application對象可以用于網(wǎng)站訪問量,或者在線用戶的統(tǒng)計(jì)等功能。application對象實(shí)現(xiàn)網(wǎng)頁計(jì)數(shù)器<%--用application對象實(shí)現(xiàn)網(wǎng)頁計(jì)數(shù)器peixun2.14.jsp文件代碼--%><%@pagecontentType="text/html;charset=gb2312"%><html> <head><title>網(wǎng)頁計(jì)數(shù)器</title><head><body><%if(application.getAttribute("counter")==null) application.setAttribute("counter","1"); else{ Stringstrnum=null; strnum=application.getAttribute("counter").toString(); inticount=0; icount=Integer.valueOf(strnum).intValue(); icount++; application.setAttribute("counter",Integer.toString(icount)); }%>您是第<%=application.getAttribute("counter")%>位訪問者!</body></html>運(yùn)行結(jié)果(第一次訪問)刷新一次config、page、exception“config”對象提供一些配置信息,常用的方法有g(shù)etInitParameter和getInitParameterNames,以獲得Servlet初始化時的參數(shù)?!皃age”對象代表了正在運(yùn)行的由JSP文件產(chǎn)生的類對象,不建議一般讀者使用?!癳xception”對象則代表了JSP文件運(yùn)行時所產(chǎn)生的例外對象,此對象不能在一般JSP文件中直接使用,而只能在使用了“<%@pageisErrorPage="true"%>”的JSP文件中使用思考與練習(xí)編寫用戶登錄程序,根據(jù)登錄用戶的不同,顯示不同頁面。編寫網(wǎng)站計(jì)數(shù)器。利用session編寫購物車程序。第七章JSP中訪問文件7.1文件操作7.2Cookie的管理7.3文件上傳的實(shí)現(xiàn)7.1文件操作1。File文件對象包的一部分,它代表一個文件或文件夾的引用。格式:)創(chuàng)建一個File對象,如果沒有指定文件名,則創(chuàng)建一個文件夾。例如:FilemyFile(“d:\counter.txt”);常用方法:exists()、delete()、mkdir()2。讀取文本文件讀取字符流,逐個字符讀取,格式:txt=new(文件名)例如:txt=new(“counter.txt”)BufferedReader讀取字符輸入流,一次讀取一行,格式:BufferedReaderbuff=newBufferedReader(Reader);例如:BufferedReaderbuff=newBufferedReader(new(“counter.txt”));buff.close();注意:BufferedReader讀取字符輸入流,并高效率的緩存起來。3。寫入文本文件BufferedWriter寫入一個帶緩沖的字符流。格式:BufferedWriter()例如:File(“d:\xy.txt”);BufferedWriteroutf=newBufferedWriter(new(tmpf));outf.write(“123”);outf.close();文件操作示例
try{String“d:/counter.dat";BufferedReaderbuff=newBufferedReader(new());longtmp;Stringline;line=buff.readLine();tmp=Long.parseLong(line);tmp++;Longtmpint=newLong(tmp);context.setAttribute("visitor",tmpint);Stringcounter=tmpint.toString(););BufferedWriteroutf=newBufferedWriter(new(tmpf));outf.write(counter);outf.close();buff.close();}catch(Exceptione){System.err.println("無法更新計(jì)數(shù)器:"+e);}}4。文件輸入流
流(Stream)是一個將數(shù)據(jù)從一個地方運(yùn)送到另一個地方的一個對象。輸入流格式:inStream=new(String);例如:inStream=new(“d:\mylet.zip”);5。輸出流OutputStreamtoClient=response.getOutputStream();例如:OutputStreamtoClient=response.getOutputStream();toClient.flush();toClient.close();流的應(yīng)用示例-文件下載的實(shí)現(xiàn)packagebysservlet;importjavax.servlet.*;importjavax.servlet.http.*;importjava.io.*;publicclassdownloadextendsHttpServlet{privatestaticfinalStringCONTENT_TYPE="text/html;charset=GB2312";publicvoidservice(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{
response.setBufferSize(20000);//有什么作用??? PrintWriterout=response.getWriter();response.setContentType(CONTENT_TYPE);request.setCharacterEncoding("GBK");//下載路徑String=request.getParameter("fpath");if(==null){="";}//文件名稱String=request.getParameter("fname");if(==null){="";}StringdirName=getServletContext().getRealPath("/"+);java.io.;Stringdd=dirName+System.getProperties().getProperty("")+;try{ff=newjava.io.);}catch(Exceptione){out.println(“出錯!”);}if(ff!=null&&ff.exists()&&ff.isFile()){long=ff.length();inStream=new(dd);response.reset();response.setContentType("application/x-msdownload;charset=GBK");response.setContentLength((int)); response.setHeader("Content-Disposition","attachment;\""+"\"");OutputStreamtoClient=response.getOutputStream();byte[]bzp=newbyte[102400];inti;while((i=inStream.read(bzp))!=-1){toClient.write(bzp,0,i);}toClient.flush();toClient.close();}}}7.2Cookie的管理Cookie是服務(wù)器在用戶硬盤上存放的信息。1。創(chuàng)建CookieCookiemyCookie=newCookie(“cookieName”,”cookieValue”);Response.addCookie(myCookie);例如:Cookievname=newCookie(“usrname”,”Tom”);response.addCookie(vname);2。獲取CookieCookiecookies[]=request.getCookies();然后調(diào)用Coo
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 小學(xué)2025年專項(xiàng)發(fā)展規(guī)劃
- 長春汽車工業(yè)高等??茖W(xué)?!队螒騽討B(tài)設(shè)計(jì)實(shí)驗(yàn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 食品衛(wèi)生安全監(jiān)管的挑戰(zhàn)與對策
- 專業(yè)基礎(chǔ)知識(給排水)-2021年注冊公用設(shè)備工程師(給排水)《專業(yè)基礎(chǔ)》真題
- 畢業(yè)生代表大學(xué)畢業(yè)典禮發(fā)言稿
- 讀書心得體會范文:《追求卓越》
- 二零二五年度高科技企業(yè)股份代持保密合作協(xié)議3篇
- 山西省晉中市祁縣2024-2025學(xué)年八年級上學(xué)期期末生物學(xué)試題(含答案)
- 二零二五年期市場營銷推廣合同
- 遼陽市小升初英語試卷單選題100道及答案
- 鋼構(gòu)樓板合同范例
- 2024-2025學(xué)年人教版(2024)信息技術(shù)四年級上冊 第11課 嘀嘀嗒嗒的秘密 說課稿
- 2024中考物理真題匯編:電與磁(含解析)
- 物流管理概論 課件全套 王皓 第1-10章 物流與物流管理的基礎(chǔ)知識 - 物流系統(tǒng)
- 蘇教版六年級上冊分?jǐn)?shù)四則混合運(yùn)算100題帶答案
- 2024年考研英語(一)真題及參考答案
- 醫(yī)療組長競聘
- 2024年業(yè)績換取股權(quán)的協(xié)議書模板
- 顳下頜關(guān)節(jié)疾?。谇活M面外科學(xué)課件)
- 工業(yè)自動化設(shè)備維護(hù)保養(yǎng)指南
- 2024人教新版七年級上冊英語單詞英譯漢默寫表
評論
0/150
提交評論