JSP程序設(shè)計(jì)課件_第1頁(yè)
JSP程序設(shè)計(jì)課件_第2頁(yè)
JSP程序設(shè)計(jì)課件_第3頁(yè)
JSP程序設(shè)計(jì)課件_第4頁(yè)
JSP程序設(shè)計(jì)課件_第5頁(yè)
已閱讀5頁(yè),還剩190頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

JSP程序設(shè)計(jì)本課程主要講述內(nèi)容:JSP技術(shù)基礎(chǔ)環(huán)境配置HTML基礎(chǔ)JSP語(yǔ)法JSP內(nèi)置對(duì)象JSP文件操作JSP中訪問(wèn)數(shù)據(jù)庫(kù)ServletJavaBean需要具備的相關(guān)知識(shí):數(shù)據(jù)庫(kù)基本知識(shí)網(wǎng)絡(luò)基礎(chǔ)知識(shí)Dreamweaver的使用Eclipse3.2Java語(yǔ)言(成為JSP高手必備)

本課程以實(shí)戰(zhàn)為導(dǎo)向。課后認(rèn)真自學(xué)上述相關(guān)基礎(chǔ)知識(shí)。布置的思考與練習(xí)題目,盡可能課后認(rèn)真上機(jī)實(shí)踐(經(jīng)濟(jì)管理學(xué)院機(jī)房已經(jīng)具備JSP環(huán)境)。如何成為一個(gè)優(yōu)秀的jsp程序員3、學(xué)習(xí)

JavaScript

學(xué)習(xí)怎么將

JavaScript在HTML中驗(yàn)證輸入的Form元素。也學(xué)習(xí)

JavaScript怎么能在一

HTML

頁(yè)以內(nèi)修改Form的元素。最后要求你能從一

HTML

頁(yè)內(nèi)的事件中觸發(fā)

JavaScript

Function。

訓(xùn)練時(shí)間:1~

2

個(gè)星期。4、學(xué)習(xí)并且理解你的Web

Server的更多細(xì)節(jié)。

熟悉Web

Server的特征,這是很重要的。

訓(xùn)練時(shí)間:2

天。如何成為一個(gè)優(yōu)秀的jsp程序員5、建立你的

JSP

Server

推薦以Tomcat開(kāi)始。它可以很好地運(yùn)行JSP程序。當(dāng)你不能在生產(chǎn)使用Tomcat時(shí),學(xué)習(xí)盡可能多的知識(shí)以便于更好的運(yùn)行程序。另外,

許多

JSP

程序員使用Tomcat。因此當(dāng)你遇到一個(gè)問(wèn)題時(shí),你將容易發(fā)現(xiàn)幫助。

安裝時(shí)間:1~

2

天。6、開(kāi)始學(xué)習(xí)

JSP

。

基本的

JSP

學(xué)習(xí)通過(guò)的步驟

1到步驟6可以完成,

然后使用

JSP

對(duì)象和腳本寫

JSP

程序來(lái)聯(lián)系。學(xué)習(xí)

JSP

的另外一個(gè)方面可以學(xué)習(xí)怎么創(chuàng)建一個(gè)分布式的應(yīng)用程序。

訓(xùn)練時(shí)間:4

6

個(gè)星期。如何成為一個(gè)優(yōu)秀的jsp程序員7、學(xué)習(xí)更多的

JSP

server。

沒(méi)有關(guān)于更多的

JSP

Server當(dāng)然也可以運(yùn)行jsp程序。然而,

許多

JSP

server都由自己特殊的特征,可以讓你更好的理解你的JSP

工程。

學(xué)習(xí)更多的Jsp

server如何處理jsp程序是有必要的。同樣也可以優(yōu)化你的

JSP

應(yīng)用程序,并且使之運(yùn)行得更快而不出任何問(wèn)題。

訓(xùn)練時(shí)間:2

7

天。

到現(xiàn)在,你已經(jīng)成為了熟練的

JSP

程序員。仍然有很多需要學(xué)習(xí),你可以考慮擴(kuò)展你的知識(shí)比如

DHTML

XML

,java證書(shū),

JSP

Tag

Libraries

Servlets

,

看你想要造什么類型的網(wǎng)站而決定了。

這些訓(xùn)練是JSP

的核心。你不必都學(xué)習(xí)上面所有的,

取決于你在工程中分配到什么任務(wù)和你已經(jīng)有什么知識(shí)。但是這是成功地訓(xùn)練程序員的時(shí)間表。關(guān)鍵的單元是時(shí)間。平均的說(shuō),

5

個(gè)月時(shí)間確實(shí)能夠訓(xùn)練一個(gè)人

(

從開(kāi)始到完成

)

成為一個(gè)對(duì)jsp熟悉程序員。5

個(gè)月時(shí)間似乎很長(zhǎng),但要成為一個(gè)資深的WEB程序員所學(xué)的東西遠(yuǎn)遠(yuǎn)不止這一些。本課程涉及的軟件Java開(kāi)發(fā)工具包JDK1.5Tomcat5.5.7、resin2.xDreamweaver2004MXmySQL4.x、mySQL-Front3.1Eclipse3.2其它參考書(shū)籍:1.《JSP深入編程》希望電子出版社2.《網(wǎng)絡(luò)編程語(yǔ)言JSP實(shí)例教程》電子工業(yè)出版社3.《JSP/HTML編程實(shí)作教程

》希望電子出版社4..《JSP程序設(shè)計(jì)指南--初級(jí)程序員的基本技能》清華大學(xué)出版社5.《JSP入門與提高》清華大學(xué)出版社

4。安裝mySQL數(shù)據(jù)庫(kù)、mySQL-front管理程序MySQL是一個(gè)精巧的SQL數(shù)據(jù)庫(kù)管理系統(tǒng)。由于它的強(qiáng)大功能、靈活性、以及精巧的系統(tǒng)結(jié)構(gòu),受到了廣大自由軟件愛(ài)好者甚至是商業(yè)軟件用戶的青睞,特別是與Apache結(jié)合,為建立基于數(shù)據(jù)庫(kù)的動(dòng)態(tài)網(wǎng)站提供了強(qiáng)大動(dòng)力!MySQL有瑞典的T.c.X公司負(fù)責(zé)開(kāi)發(fā)和維護(hù)。MySQL是一個(gè)真正的多用戶、多線程SQL數(shù)據(jù)庫(kù)服務(wù)器。MySQL

主要目標(biāo)是快速、健壯和易用。它可媲美任何昂貴的大型數(shù)據(jù)庫(kù),但速度更快。自1996年以來(lái),許多機(jī)構(gòu)一直都在使用MySQL。MySQL建立的基礎(chǔ)是業(yè)已用在高要求的生產(chǎn)環(huán)境多年的一套實(shí)用例程。盡管MySQL仍在開(kāi)發(fā)中,但它已經(jīng)提供一個(gè)豐富和極其有用的功能集。MySQL的官方發(fā)音是“MyEssQueEll”(不是

MY-SEQUEL

)。5。安裝Eclipse

目前為止,大多數(shù)Java?程序員都聽(tīng)說(shuō)過(guò)Eclipse,它正迅速成為最流行的Java編程環(huán)境。在目前所有的IDE中,Eclipse可以說(shuō)是最有發(fā)展前途的產(chǎn)品之一。Eclipse最初由OTI和IBM兩家公司的IDE產(chǎn)品開(kāi)發(fā)組創(chuàng)建,起始于1999年4月。目前由IBM牽頭,圍繞著Eclipse項(xiàng)目已經(jīng)發(fā)展成為了一個(gè)龐大的Eclipse聯(lián)盟,有150多家軟件公司參與到Eclipse項(xiàng)目中,其中包括Borland、Rational

Software、Red

Hat及Sybase,最近Oracle也計(jì)劃加入到Eclipse聯(lián)盟中。Eclipse是否與其他花錢的IDE一樣好?答案非常確定!對(duì)于編碼、調(diào)試、重構(gòu)、單元測(cè)試等等,Eclipse可以與任何一種IDE匹敵,甚至比它們還要好。與昂貴的JBuilder2005版本相比,您可能會(huì)發(fā)現(xiàn)Eclipse對(duì)很多特性的支持都比JBuilder更好。6。下載MyEclipseEclipse插件,收費(fèi)軟件。使Eclipse支持EJB、JSP、Servlet等等。功能強(qiáng)大!下載后安裝即可。..用戶..用戶..用戶...WEB服務(wù)器數(shù)據(jù)庫(kù)服務(wù)器ODBC/JDBC數(shù)據(jù)請(qǐng)求返回?cái)?shù)據(jù)數(shù)據(jù)請(qǐng)求返回?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è)面不能適應(yīng)需求,動(dòng)態(tài)網(wǎng)站技術(shù)應(yīng)運(yùn)而生。動(dòng)態(tài)網(wǎng)站特性:

后臺(tái)數(shù)據(jù)庫(kù)支持

站點(diǎn)信息及時(shí)更新

動(dòng)態(tài)顯示效果

補(bǔ)充說(shuō)明:靜態(tài)網(wǎng)頁(yè)是預(yù)先編寫好的HTML文件,當(dāng)瀏覽器訪問(wèn)時(shí),WEB服務(wù)器將文件傳送給瀏覽器,整個(gè)過(guò)程中網(wǎng)頁(yè)內(nèi)容不被改變。HTML的表單、動(dòng)態(tài)GIF圖、FLASH、Applet和瀏覽器端腳本不等于動(dòng)態(tài)網(wǎng)頁(yè)。動(dòng)態(tài)網(wǎng)頁(yè)可以看作是預(yù)先編寫好的HTML模板文件。當(dāng)瀏覽器訪問(wèn)動(dòng)態(tài)網(wǎng)頁(yè)時(shí),WEB服務(wù)器根據(jù)一定的程序邏輯填寫模板,并將最終生成的內(nèi)容傳送給瀏覽器。特點(diǎn):適用于任何平臺(tái)、支持者眾多程序的執(zhí)行效率高擁有Java優(yōu)勢(shì)強(qiáng)大的服務(wù)器組件強(qiáng)大的數(shù)據(jù)庫(kù)支持Writeonce,runanywhere!錢途無(wú)量的JSP!提示:在國(guó)外,JSP+Servlet+J2EE已經(jīng)成為開(kāi)發(fā)電子商務(wù)的主流技術(shù)。2.2JSP與主流動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)比較2.3JSP的運(yùn)行環(huán)境2.3.1JSP運(yùn)行環(huán)境需要的組件Java2軟件開(kāi)發(fā)工具箱??梢栽趕un公司免費(fèi)下載。JSP引擎(JSP應(yīng)用服務(wù)器)。Resin、Tomcat、JRun、 JSWDK、Weblogic等等。2.3.3JSP執(zhí)行過(guò)程執(zhí)行過(guò)程:瀏覽器IETomcat2.3.4JSP程序的初步體驗(yàn)一個(gè)簡(jiǎn)單的JSP程序:<%@pagecontentType="text/html;charset=gb2312"language="java"errorPage=""%><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>我的第一個(gè)JSP程序</title></head><body><%out.println(“Helloworld!”);%></body></html>3.2HTML文檔的基本結(jié)構(gòu) 一個(gè)基本的HTML文檔通常包含以下三對(duì)頂級(jí)標(biāo)記。1.HTML標(biāo)記<HTML>...</HTML>2.首部標(biāo)記<HEAD>...</HEAD> 首部標(biāo)記用于提供與Web頁(yè)有關(guān)的各種信息。在首部標(biāo)記中,可以使用:<TITLE>和</TITLE><STYLE>和</STYLE><SCRIPT>和</SCRIPT>等等。3.正文標(biāo)記<BODY>...</BODY> 正文標(biāo)記包含了文檔的內(nèi)容,文字、圖像、動(dòng)畫、超鏈接以及其他HTML元素均位于該標(biāo)記中。正文標(biāo)記有下列屬性。(1)BACKGROUD:指定文檔背景圖像的URL地址,圖像平鋪在頁(yè)背景上。(2)BGCOLOR:指定文檔的背景顏色。(3)TEXT:指定文檔中文本的顏色。(7)ONLOAD:指定文檔首次加載時(shí)調(diào)用的事件處理程序。(8)ONUNLOAD:用于指定文檔卸載時(shí)調(diào)用的事件處理程序。顏色屬性的值有兩種表示方法:使用顏色名稱:例如紅色、綠色和藍(lán)色分別用red、green和blue表示;使用十六進(jìn)制格式數(shù)值:#RRGGBB來(lái)表示,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>文本、圖像、動(dòng)畫、HTML指令等</BODY></HTML>5添加注釋 注釋由開(kāi)始標(biāo)記<!--和結(jié)束標(biāo)記-->構(gòu)成。3.3設(shè)置文本格式3.3.1分段與換行 段落是文檔的基本信息單位。將文檔劃分為段落,可以通過(guò)使用分段標(biāo)記、換行標(biāo)記、標(biāo)題標(biāo)記或插入水平線來(lái)實(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)記在文檔中添加一條水平線,用來(lái)分開(kāi)文檔的兩個(gè)部分。該標(biāo)記有以下屬性: (1)ALIGN:指定線的對(duì)齊方式,取值為left(左對(duì)齊)、center(居中對(duì)齊)或right(右對(duì)齊),默認(rèn)值為center。 (2)COLOR:指定線的顏色。 (3)NOSHADE:若指定該項(xiàng),則顯示一條無(wú)陰影的實(shí)線。 (4)SIZE:指定線的寬度,以像素為單位。 (5)WIDTH:指定線的長(zhǎng)度,單位可以是像素或百分比(占頁(yè)面寬度的百分比)。3.3.2設(shè)置段落對(duì)齊方式 使用ALIGN屬性來(lái)設(shè)置段落的對(duì)齊方式。ALIGN屬性的取值可以是:left(左對(duì)齊)、center(居中對(duì)齊)、right(右對(duì)齊)以及justify(兩邊對(duì)齊)。3.3.3設(shè)置字體、字號(hào)和顏色 字體標(biāo)記<FONT>...</FONT>來(lái)設(shè)置文本的字符格式,并通過(guò)FACE、SIZE和COLOR屬性來(lái)設(shè)置文本的字體、字號(hào)和顏色。例如:<FONTFACE="楷體_GB2312,仿宋_GB2312,宋體">超文本標(biāo)記語(yǔ)言</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插入特殊字符可以使用兩種方式來(lái)輸入特殊符號(hào):即使用字符實(shí)體名稱或數(shù)字表示方式。例如,若要在網(wǎng)頁(yè)中輸入一個(gè)無(wú)間斷空格,可以輸入“ ”或“ ”,等等。表2.3列出了常用特殊符號(hào)的實(shí)體名稱或數(shù)字表示。3.4使用圖像 使用IMG標(biāo)記在網(wǎng)頁(yè)中插入一個(gè)圖像。1.SRC和ALT屬性IMG標(biāo)記有許多屬性,其中最常用的是SRC和ALT屬性SRC屬性給出圖像文件的URL地址,圖像可以是JPEG文件、GIF文件或PNG文件。ALT屬性給出圖像的簡(jiǎn)單文本說(shuō)明。2.指定圖像的高和寬當(dāng)使用IMG標(biāo)記在網(wǎng)頁(yè)中插入一個(gè)圖像時(shí),可以通過(guò)HEIGHT和WIDTH屬性來(lái)設(shè)置圖像的高度和寬度3.5使用字幕和背景音樂(lè)3.5.1插入字幕

<MARQUEE>要滾動(dòng)顯示的文本信息</MARQUEE>MARQUEE標(biāo)記的主要屬性有:(1)ALIGN:指定字幕與周圍文本的對(duì)齊方式,其取值可以是top、middle或bottom。(2)BEHAVIOR:指定文本動(dòng)畫的類型,其取值可以是scroll、slide或alternate。(3)BGCOLOR:指定字幕的背景顏色。(4)DIRECTION:指定文本的移動(dòng)方向,其取值可以是down、left、right或up。(5)HEIGHT:指定字幕的高度,以像素或百分比為單位。(6)HSPACE:整數(shù),指定字幕的外部邊緣與瀏覽器窗口之間的左右邊距(像素)。(7)SCROLLAMOUNT:整數(shù),指定字幕文本每次移動(dòng)的距離,以像素為單位。(8)SCROLLDEALY:整數(shù),指定與前段字幕文本延遲多少ms后重新開(kāi)始移動(dòng)文本。(9)VSPACE:整數(shù),指定字幕的外邊緣與瀏覽器窗口之間的上下邊距(像素)。3.5.2插入背景音樂(lè) 使用<BGSOUND>標(biāo)記在網(wǎng)頁(yè)中添加背景音樂(lè),該標(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ù)播放,直到頁(yè)面卸載。(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)是的一個(gè)文件,它可以位于當(dāng)前網(wǎng)頁(yè)所在的服務(wù)器,也可以位于其他服務(wù)器。<ahref=“”>名稱</a>(2)E-mail鏈接:通過(guò)這種鏈接可以啟動(dòng)電子郵件客戶端程序(如Outlook或FoxMail等),并允許訪問(wèn)者向指定的地址發(fā)送郵件。<AHREF="mailto:?subject=關(guān)于ASP動(dòng)態(tài)網(wǎng)頁(yè)設(shè)計(jì)">給我寫信</A>2.理解路徑 路徑是指從站點(diǎn)根文件夾或當(dāng)前文件夾起到目標(biāo)文件所經(jīng)過(guò)的路線。路徑有以下幾種類型:(1)絕對(duì)路徑:也稱為絕對(duì)URL,它給出目標(biāo)文件的完整URL地址,包括傳輸協(xié)議在內(nèi)。如果要鏈接的文件位于外部服務(wù)器上,則必須使用絕對(duì)路徑。(2)相對(duì)路徑:也稱為相對(duì)URL,是指以當(dāng)前文檔所在位置為起點(diǎn)到目標(biāo)文檔所經(jīng)過(guò)的路徑。3.8使用表單什么是表單? 表單是用來(lái)收集站點(diǎn)訪問(wèn)者信息的域集。3.8.1創(chuàng)建表單在HTML語(yǔ)言中,表單通過(guò)FORM標(biāo)記來(lái)定義,基本語(yǔ)法格式如下:<FORMNAME="字符串"METHOD="get|post"ACTION="字符串">……</FORM>FORM標(biāo)記具有以下屬性:(1)NAME:指定表單的名稱,以標(biāo)識(shí)表單。命名表單后,可以使用腳本語(yǔ)言(如VBScript或JScript)來(lái)引用或控制該表單(2)METHOD:post、get。(3)ACTION:指定將要接收表單數(shù)據(jù)的服務(wù)器端程序或動(dòng)態(tài)網(wǎng)頁(yè)的網(wǎng)址。(4)onSubmit:指定提交表單時(shí)調(diào)用的事件處理程序。(5)onReset:指定重置表單時(shí)調(diào)用的事件處理程序。(6)TARGET:指定一個(gè)目標(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(“請(qǐng)輸入您的Email地址,地址不能為空!");

returnfalse;

}}

注意:如何實(shí)現(xiàn)光標(biāo)自動(dòng)定位?示例3電子郵件地址格式的確認(rèn)functionisEmail(theEmail){varemail=theEmail;email=email.replace(/(^\s*)|(\s*$)/g,"");if(email==""){alert(“請(qǐng)輸入您的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地址不正確,請(qǐng)重新輸入!");

return(false);}}}思考與練習(xí):

1.如何實(shí)現(xiàn)不規(guī)則表格?

2.如何使用表單提交進(jìn)行客戶端確認(rèn)?

4.1.1開(kāi)始和結(jié)束標(biāo)記

以<%開(kāi)頭,以%>結(jié)尾,格式:

<%程序內(nèi)容%>例如:<%out.println(“歡迎訪問(wèn)本網(wǎng)站!”);%>4.1.2注釋注釋是幫助自己或別人閱讀程序。注釋可以有兩種形式,HTML注釋、JSP注釋。HTML注釋:<!--注釋內(nèi)容-->第四章JSP語(yǔ)法基礎(chǔ)

4.1JSP基本語(yǔ)法規(guī)則HTML注釋:<!--注釋內(nèi)容

-->注釋的內(nèi)容會(huì)在客戶端的HTML源代碼中出現(xiàn)。例如:<!--這是個(gè)用戶登錄程序login.jsp--><!--編寫者:張三-->JSP注釋客戶端查看源代碼時(shí)看不到(安全考慮)。格式:<%--注釋內(nèi)容

--%>

示例:<%@pagecontentType="text/html;charset=gb2312"language="java"errorPage=""%><%--文件名:comms.jsp編寫者:張三說(shuō)明:測(cè)試程序--%><html><head><metahttp-equiv="Content-Type"content="text/html;charset=gb2312"><title>用戶留言</title></head><body><!--這是一個(gè)測(cè)試程序--><%--顯示helloworld!--%><%out.println(“Helloworld!”);%></body></html>4.1.3基本數(shù)據(jù)類型1)整型三種形式:十進(jìn)制、八進(jìn)制(0開(kāi)頭)、十六進(jìn)制(0x開(kāi)頭)。具體類型如下:byte類型有符號(hào),范圍-128~127。例如:bytea,b=12;short類型(很少使用)有符號(hào),范圍-32768~32767。例如:shortd,e=234;int類型有符號(hào),范圍-2147483684~2147483683。例如:intx,y=12;long類型有符號(hào),范圍-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用單引號(hào)括起來(lái)。例如:charxx=’123’;思考:charrtn=’\n’;表示什么?4)字符串型String用雙引號(hào)括起來(lái)的一串字符。例如:StringmyStr=“xyz”;注意:是對(duì)象,而非數(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)生的新字符串返回。思考:如何判斷一個(gè)字符串是否是一個(gè)合法的email地址?

4.1.4運(yùn)算符關(guān)系運(yùn)算符用來(lái)比較兩個(gè)值,并返回布爾型的值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為真,則整個(gè)三目運(yùn)算的結(jié)果是表達(dá)式y(tǒng)的值;若x為假,則整個(gè)三目運(yùn)算的結(jié)果是表達(dá)式z的值。下面的例子實(shí)現(xiàn)了從兩個(gè)數(shù)中找出較大的數(shù)的功能。

inta=3,b=4;intmax=a>b?a:b;

三目條件運(yùn)算是可以嵌套的,如有以下的語(yǔ)句,則max表示的是a、b、c三個(gè)數(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á)式的語(yǔ)法形式:<%=表達(dá)式%>例如:<%intnum=100;%>數(shù)值為:<%=num%>Jsp程序段包含在<%和%>之間的有效程序段。具體形式:<%你的程序代碼%>例如:<%If(sex==null)out.println(”請(qǐng)輸入性別信息!”);Elseif(sex.equals(”男”))out.println(”男!”);%>4.3.1結(jié)構(gòu)化程序設(shè)計(jì)的三種基本流程

1.自頂向下2.逐步求精3.模塊化

除了以上的原則,結(jié)構(gòu)化程序設(shè)計(jì)還有一個(gè)重要的規(guī)定,那就是只能使用“順序結(jié)構(gòu)”、“選擇結(jié)構(gòu)”、“循環(huán)結(jié)構(gòu)”這三種基本結(jié)構(gòu)(或由它們派生出來(lái)的結(jié)構(gòu))來(lái)定義程序的流程。三種基本流程控制結(jié)構(gòu)示意圖分別如圖3-1所示。4.3JSP流程控制語(yǔ)句4.3.2選擇結(jié)構(gòu)選擇結(jié)構(gòu)又稱為分支結(jié)構(gòu),是在兩種或兩種以上的多條執(zhí)行路徑中選擇一條執(zhí)行的控制結(jié)構(gòu)。1.if—else語(yǔ)句if(條件表達(dá)式){語(yǔ)句組1;}else{語(yǔ)句組2;}在if—else語(yǔ)句中,else部分是選擇性的。經(jīng)??梢钥吹街挥衖f語(yǔ)句,而沒(méi)有else語(yǔ)句的情況。在這種情況下,當(dāng)測(cè)試條件為假時(shí)如不需做任何事,else部分可被省略。這時(shí),其語(yǔ)法形式如下:if(條件表達(dá)式){語(yǔ)句組;}思考:求3個(gè)數(shù)中的最大者?2.switch語(yǔ)句

switch語(yǔ)句(又稱開(kāi)關(guān)語(yǔ)句)是和case語(yǔ)句一起使用的,其功能是根據(jù)某個(gè)表達(dá)式的值在多個(gè)case引導(dǎo)的多個(gè)分支語(yǔ)句中選擇一個(gè)來(lái)執(zhí)行。它的一般格式如下:switch(表達(dá)式){case判斷值1:語(yǔ)句塊1case判斷值2:語(yǔ)句塊2 ……case判斷值n:語(yǔ)句塊ndefault:語(yǔ)句塊n+1}

switch后面括號(hào)中表達(dá)式的值必須是符合byte,char,short,int類型的常量表達(dá)式,而不能用浮點(diǎn)類型或long類型,也不能為一個(gè)字符串。一個(gè)switch語(yǔ)句可以代替多個(gè)if—else語(yǔ)句組成的分支結(jié)構(gòu),而switch語(yǔ)句從思路上顯得更清晰。 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中有三種語(yǔ)句來(lái)實(shí)現(xiàn)循環(huán)結(jié)構(gòu),分別是while,do-while和for語(yǔ)句。1.while語(yǔ)句while語(yǔ)句的格式如下:while(條件表達(dá)式){ 循環(huán)體語(yǔ)句;}例:用while語(yǔ)句計(jì)算10! intn=10; longresult=1;

while(n>=1)result*=n--;//改寫該語(yǔ)句? out.println("10!="+result);2.do-while語(yǔ)句

do-while語(yǔ)句的格式如下:do{ 循環(huán)體語(yǔ)句;}while(條件表達(dá)式)

例:用do-while語(yǔ)句計(jì)算10的階乘 intn=10; longresult=1; do result*=n--; while(n>=1); System.out.println("10!="+result);3.for語(yǔ)句for(表達(dá)式1;表達(dá)式2;表達(dá)式3){ 循環(huán)體語(yǔ)句;}for語(yǔ)句的執(zhí)行過(guò)程:(1)在循環(huán)剛開(kāi)始時(shí),先計(jì)算表達(dá)式1。(2)根據(jù)表達(dá)式2的值來(lái)決定是否執(zhí)行循環(huán)體。表達(dá)式2是一個(gè)返回布爾值的表達(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)語(yǔ)句 跳轉(zhuǎn)語(yǔ)句用來(lái)實(shí)現(xiàn)循環(huán)執(zhí)行過(guò)程中的流程轉(zhuǎn)移。有兩種跳轉(zhuǎn)語(yǔ)句:break語(yǔ)句和continue語(yǔ)句。 其中,break用于強(qiáng)行退出循環(huán),不執(zhí)行循環(huán)中剩余的語(yǔ)句。而continue則停止執(zhí)行當(dāng)前的循環(huán),開(kāi)始新的循環(huán)。intn;for(n=1;n<=10;n++){if(n%2==0)break;//修改為continue結(jié)果如何?out.println("n="+n);}4.3.5異常處理語(yǔ)句 當(dāng)發(fā)生例外時(shí),采用異常處理機(jī)制。Java采用try-catch-finally結(jié)構(gòu)處理錯(cuò)誤。try-catch的實(shí)際意思是:嘗試這塊可能導(dǎo)致異常的代碼。如果它執(zhí)行正常,那么繼續(xù)執(zhí)行下面的程序。如果該代碼無(wú)法執(zhí)行,捕獲該異常并對(duì)它進(jìn)行處理?;拘问剑簍ry{//程序塊}catch(ExceptionTypee){//對(duì)ExceptionType的處理}例如:try{File(“c:/inc");…}catch(Exceptione){out.println(“無(wú)法找到文件!");}

假定在你的代碼中有一些動(dòng)作,不管發(fā)生什么情況,無(wú)論異常是否被拋出,你都必須執(zhí)行這些操作。則需要使用finally子句。例如:try{readTextfile();}catch(IOExceptione){out.println(”該文件不存在!”);}finally{closeTextfile();}總結(jié)一下try-catch-finally結(jié)構(gòu)的形式:try{//程序塊}catch(ExceptionTypee){//對(duì)ExceptionType的處理}finally{//必須處理的程序語(yǔ)句}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語(yǔ)句輸出斜體的“武漢科技學(xué)院”?思考與練習(xí):

1.JSP注釋與HTML注釋的差異?

2.JSP中如何輸出HTML標(biāo)記?

3.試說(shuō)明異常機(jī)制?第五章JSP的頁(yè)面元素

5.1JSP指令

5.2JSP動(dòng)作語(yǔ)法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>…特別說(shuō)明:頁(yè)面緩存緩存是一種用于提高系統(tǒng)性能節(jié)省操作時(shí)間的技術(shù),數(shù)據(jù)庫(kù)產(chǎn)品利用它可以提高系統(tǒng)的吞吐率,服務(wù)器利用它可以提高性能。緩存是將響應(yīng)內(nèi)容臨時(shí)保存在服務(wù)器的內(nèi)存中,然后在請(qǐng)求處理完畢之后發(fā)回給所調(diào)用的瀏覽器。在Web應(yīng)用程序中,提高系統(tǒng)性能最有效的手段是在需要時(shí)緩存頁(yè)面的輸出。在JSP頁(yè)面最好使用輸出緩存功能。緩存設(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)前頁(yè)中插入一個(gè)靜態(tài)文件的內(nèi)容。格式如下:<%@includefile=“網(wǎng)頁(yè)文件"%>示例:<%@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語(yǔ)法<%@tagliburi="URIToTagLibrary"prefix="tagPrefix"%>用于引入定制標(biāo)簽庫(kù)taglib指令屬性1.uri="URIToTagLibrary"UniformResourceIdentifier(URI)根據(jù)標(biāo)簽的前綴對(duì)自定義的標(biāo)簽進(jìn)行唯一的命名,URI可以是以下的內(nèi)容:UniformResourceLocator(URL),由RFC2396定義,可以從以下位置查看(/jkorpela/rfc/2396/full.html)。

UniformResourceName(URN),由RFC2396定義一個(gè)相對(duì)或絕對(duì)的路徑

可以是標(biāo)簽庫(kù)描述文件2.prefix="tagPrefix"表示標(biāo)簽在JSP中的名稱。在自定義標(biāo)簽之前的前綴,比如,在<public:loop>中的public,如果這里不寫public,那么這就是不合法的。請(qǐng)不要用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動(dòng)作語(yǔ)法

1.<jsp:forward>

2.<jsp:include>

3.<jsp:useBean>1.<jsp:forward>JSP語(yǔ)法格式如下:1.<jsp:forwardpage={"relativeURL"|"<%=expression%>"}/>2.<jsp:forwardpage={"relativeURL"|"<%=expression%>"}><jsp:paramname="parameterName"value="{parameterValue|<%=expression%>}"/>[<jsp:param…/>]</jsp:forward>(“[<jsp:param…/>]”指可以有多個(gè)“<jsp:param/>”標(biāo)記。)1、page="{relativeURL|<%=expression%>}"這里是一個(gè)表達(dá)式或是一個(gè)字符串用于說(shuō)明你將要定向的文件或URL。這個(gè)文件可以是JSP,程序段,或者其它能夠處理request對(duì)象的文件(如asp,cgi,php)。

2.<jsp:paramname="parameterName"value="{parameterValue|<%=expression%>}"/>向一個(gè)動(dòng)態(tài)文件發(fā)送一個(gè)或多個(gè)參數(shù),這個(gè)文件必須是動(dòng)態(tài)文件。如果想傳遞多個(gè)參數(shù),可以在一個(gè)JSP文件中使用多個(gè)“<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>包含一個(gè)靜:態(tài)或動(dòng)態(tài)文件.

常用格式如下:

<jsp:includepage=“網(wǎng)頁(yè)文件”/>

思考:何時(shí)使用<jsp:include>,何時(shí)使用<%@includefile=“網(wǎng)頁(yè)文件”%>?3.<jsp:useBean>

在介紹JavaBean時(shí)再討論思考與練習(xí):

1)掌握文件包含。

2)制作一個(gè)申請(qǐng)免費(fèi)email的表單,要求填寫:用戶名、密碼、確認(rèn)密碼、性別、地址,其中性別用單選按鈕,用戶名、、密碼為必填項(xiàng)且不能為空。請(qǐng)用客戶端確認(rèn)實(shí)現(xiàn)上述功能。

3)上道題目中用戶填寫的內(nèi)容顯示在屏幕上。

4)編寫一個(gè)程序,驗(yàn)證用戶輸入的email地址是否正確(使用客戶端確認(rèn))。

5)編寫一個(gè)用戶登錄的jsp網(wǎng)頁(yè),若用戶名為aaa,密碼為bbb,則顯示歡迎該用戶訪問(wèn)的字樣,否則顯示非法用戶。要求使用服務(wù)器端確認(rèn)。

6)理解緩存的使用。第六章JSP的內(nèi)建對(duì)象

·request請(qǐng)求對(duì)象

·response響應(yīng)對(duì)象

·session會(huì)話對(duì)象

·application應(yīng)用程序?qū)ο?/p>

·out輸出對(duì)象1.out“out”對(duì)象代表了向客戶端發(fā)送數(shù)據(jù)的對(duì)象。out.print()out.println();out.close()out的使用

例如:out.println(“武漢”);

<%out.println("aaaaaaaaaaa");

out.close();

out.println("bbbb");%>

思考:如何輸出一個(gè)換行,或者斜體的aaa?2.request用于獲取客戶端的輸入信息。主要有以下方法:getParameter(Stringname)(很重要)獲得客戶端傳給服務(wù)器端的參數(shù)值Stringusrme=request.getParameter(“username”);getRequestURI()獲得所請(qǐng)求的URL地址getServerName()

獲得服務(wù)器名稱

getRemoteUser()

獲得登錄用戶名

getServerPort()

獲得服務(wù)器提供HTTP服務(wù)的端口號(hào)

getRemoteAddr()(很重要)

獲得客戶端的IP地址。

getRemoteHost()

獲得客戶端計(jì)算機(jī)名稱。一般為IP地址,同上request對(duì)象示例<html><body>

<formaction="./Hello_req.jsp">姓名<inputtype="text"name="UserName">

<inputtype="submit"value="提交">

</form></body></html>request對(duì)象示例(Hello_req.jsp<%@pagecontentType="text/html;gb2312"%><%@pageimport="java.util.*"%><HTML><BODY>你好,<%!StringName;%><%Name=request.getParameter("UserName");%><%=Name%>,今天是<%Datetoday=newDate();%><%=today.getDate()%>號(hào),星期<%=today.getDay()%></BODY></HTML>request對(duì)象示例(輸出結(jié)果)<HTML><BODY>你好,獨(dú)孤求敗,今天是9號(hào),星期1</BODY></HTML>3.response對(duì)象用于處理HTTP信息。有以下方法:setHeader(Stringname,Stringvalue)發(fā)送HTTP信息,控制客戶端和服務(wù)器端連接。例如:Response.setHeader(“Location”,”.”);Response.setHeader(“Refresh”,”2”);sendRedirect(Stringurl)response.senRedirect(“.”);4.session對(duì)象“session”

對(duì)象代表服務(wù)器與客戶端所建立的會(huì)話,當(dāng)需要在不同的JSP頁(yè)面中保留客戶信息的情況下使用,比如在線購(gòu)物、客戶軌跡跟蹤等?!皊ession”

對(duì)象建立在cookie的基礎(chǔ)上,所以使用時(shí)應(yīng)注意判斷一下客戶端是否打開(kāi)了cookie。常用的方法包括getId、getValue、getValueNames和putValue等。

session對(duì)象說(shuō)明:HTTP是無(wú)狀態(tài)(stateless)協(xié)議;WebServer對(duì)每一個(gè)客戶端請(qǐng)求都沒(méi)有歷史記憶;Session用來(lái)保存客戶端狀態(tài)信息;由WebServer寫入;存于客戶端;客戶端的每次訪問(wèn)都把上次的session記錄傳遞給WebServer;WebServer讀取客戶端提交的session來(lái)獲取客戶端的狀態(tài)信息;理解session:

session對(duì)象代表服務(wù)器與客戶端所建立的會(huì)話。當(dāng)需要在不同的JSP頁(yè)面中保留客戶信息的情況下使用,比如在線購(gòu)物、客戶軌跡跟蹤等。例如:在網(wǎng)上商店站點(diǎn),你做出的每一個(gè)購(gòu)買決定都會(huì)放入購(gòu)物車,他將收集你要購(gòu)買的商品,以便一次性付錢。即使瀏覽了幾百個(gè)網(wǎng)站,訂購(gòu)了數(shù)十商品,購(gòu)物車也能記住你想購(gòu)買的所有商品。這是因?yàn)閃EB應(yīng)用程序有能力記錄跟蹤會(huì)話。

記?。好總€(gè)用戶都有自己的sessionSession的常用方法:setAttribute(參數(shù)名,參數(shù)值):設(shè)置指定name的屬性值value,并存儲(chǔ)在session中。例如:session.setAttribute(“myname”,”tom”);getAttribute(參數(shù)名):獲取與參數(shù)名相聯(lián)系的屬性值。例如:session.getAttribute(“myname”);removeAttribute(參數(shù)名):刪除與指定參數(shù)名相聯(lián)系的屬性。例如:session.removeAttribute(“myname”);應(yīng)用:可以在同一個(gè)網(wǎng)站的不同頁(yè)面之間共享信息。session對(duì)象示例(Form表單—Logon_session.html)<html><body>

<formaction="./Logon_session.jsp">姓名<inputtype="text"name="UserName">

<inputtype="submit"value="提交">

</form></body></html>session對(duì)象示例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對(duì)象示例(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對(duì)象“application”對(duì)象負(fù)責(zé)提供應(yīng)用程序在服務(wù)器中運(yùn)行時(shí)的一些全局信息,常用的方法有g(shù)etMimeType和getRealPath等。application對(duì)象負(fù)責(zé)提供應(yīng)用程序在服務(wù)器中運(yùn)行時(shí)的一些全局信息。setAttribute(參數(shù)名,參數(shù)值)

例如:

application.setAttribute("counter","1");getAttribute(參數(shù)名)

例如:

application.getAttribute("counter");應(yīng)用:application對(duì)象可以用于網(wǎng)站訪問(wèn)量,或者在線用戶的統(tǒng)計(jì)等功能。application對(duì)象實(shí)現(xiàn)網(wǎng)頁(yè)計(jì)數(shù)器<%--用application對(duì)象實(shí)現(xiàn)網(wǎng)頁(yè)計(jì)數(shù)器peixun2.14.jsp文件代碼--%><%@pagecontentType="text/html;charset=gb2312"%><html> <head><title>網(wǎng)頁(yè)計(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")%>位訪問(wèn)者!</body></html>運(yùn)行結(jié)果(第一次訪問(wèn))刷新一次config、page、exception“config”對(duì)象提供一些配置信息,常用的方法有g(shù)etInitParameter和getInitParameterNames,以獲得Servlet初始化時(shí)的參數(shù)?!皃age”對(duì)象代表了正在運(yùn)行的由JSP文件產(chǎn)生的類對(duì)象,不建議一般讀者使用。“exception”對(duì)象則代表了JSP文件運(yùn)行時(shí)所產(chǎn)生的例外對(duì)象,此對(duì)象不能在一般JSP文件中直接使用,而只能在使用了“<%@pageisErrorPage="true"%>”的JSP文件中使用思考與練習(xí)編寫用戶登錄程序,根據(jù)登錄用戶的不同,顯示不同頁(yè)面。編寫網(wǎng)站計(jì)數(shù)器。利用session編寫購(gòu)物車程序。第七章JSP中訪問(wèn)文件7.1文件操作7.2Cookie的管理7.3文件上傳的實(shí)現(xiàn)7.1文件操作1。File文件對(duì)象包的一部分,它代表一個(gè)文件或文件夾的引用。格式:)創(chuàng)建一個(gè)File對(duì)象,如果沒(méi)有指定文件名,則創(chuàng)建一個(gè)文件夾。例如:FilemyFile(“d:\counter.txt”);常用方法:exists()、delete()、mkdir()2。讀取文本文件讀取字符流,逐個(gè)字符讀取,格式:txt=new(文件名)例如:txt=new(“counter.txt”)BufferedReader讀取字符輸入流,一次讀取一行,格式:BufferedReaderbuff=newBufferedReader(Reader);例如:BufferedReaderbuff=newBufferedReader(new(“counter.txt”));buff.close();注意:BufferedReader讀取字符輸入流,并高效率的緩存起來(lái)。3。寫入文本文件BufferedWriter寫入一個(gè)帶緩沖的字符流。格式: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("無(wú)法更新計(jì)數(shù)器:"+e);}}4。文件輸入流

流(Stream)是一個(gè)將數(shù)據(jù)從一個(gè)地方運(yùn)送到另一個(gè)地方的一個(gè)對(duì)象。輸入流格式: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(“出錯(cuò)!”);}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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論