《Java程序設(shè)計》課件第10章_第1頁
《Java程序設(shè)計》課件第10章_第2頁
《Java程序設(shè)計》課件第10章_第3頁
《Java程序設(shè)計》課件第10章_第4頁
《Java程序設(shè)計》課件第10章_第5頁
已閱讀5頁,還剩56頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第10章Web應(yīng)用入門10.1Web服務(wù)器與Web應(yīng)用10.2TomcatWeb服務(wù)器10.3JSP簡介10.4案例:網(wǎng)上書店查詢頁面

10.1Web服務(wù)器與Web應(yīng)用

隨著Internet技術(shù)的發(fā)展,基于Web的應(yīng)用得到越來越廣泛的應(yīng)用,例如網(wǎng)上書店、博客、論壇等等。與普通應(yīng)用程序不同,用戶無需安裝應(yīng)用程序,只需要在Web瀏覽器(如IE、Firefox等)中輸入URL即可訪問Web應(yīng)用。Web應(yīng)用系統(tǒng)具有極強的可維護(hù)性和易用性,當(dāng)新版本發(fā)布的時候,只需要更新Web服務(wù)器上的代碼即可。前面介紹的JavaApplet雖然也可用于Web應(yīng)用,但JavaApplet是下載到本地運行的,不適合大型的應(yīng)用。

Web服務(wù)器是在網(wǎng)絡(luò)中為實現(xiàn)信息發(fā)布、資料查詢、數(shù)據(jù)處理等諸多應(yīng)用搭建基本平臺的服務(wù)器。Web服務(wù)器與瀏覽器之間通過HTTP協(xié)議進(jìn)行通信,用于傳輸采用HTML

(HyperTextMarkupLanguage,超文本標(biāo)記語言)創(chuàng)建的網(wǎng)頁等內(nèi)容。

Web服務(wù)器的基本工作原理如圖10.1所示。Web瀏覽器首先向一個特定的服務(wù)器發(fā)出Web頁面請求;Web服務(wù)器接收到Web頁面請求后,尋找所請求的Web頁面,并將所請求的Web頁面?zhèn)魉徒oWeb瀏覽器;Web瀏覽器接收到所請求的Web頁面,并將它顯示出來。圖10.1Web服務(wù)器的工作原理標(biāo)準(zhǔn)的HTML語言只能編制靜態(tài)的網(wǎng)頁,僅僅使用HTML語言是無法開發(fā)出一個完整的應(yīng)用系統(tǒng)的。我們可以使用Java開發(fā)Web應(yīng)用程序。這些應(yīng)用程序使用JSP(JavaServerPages)技術(shù)創(chuàng)建Web內(nèi)容。JSP技術(shù)利用Java和HTML來開發(fā)動態(tài)Web頁面。

要使用JSP技術(shù),Web服務(wù)器端必須安裝JSP引擎軟件。當(dāng)瀏覽器向Web服務(wù)器請求一個JSP頁面時,該頁面被服務(wù)器端的JSP引擎轉(zhuǎn)換為被稱為Servelet的Java程序,然后由JSP引擎調(diào)用Java編譯器,將Servelet(.java)編譯為Class文件(.class),并由Java虛擬機執(zhí)行,執(zhí)行結(jié)果為頁面,返回給Web服務(wù)器,由Web服務(wù)器傳遞到瀏覽器。

10.2TomcatWeb服務(wù)器

自從JSP發(fā)布之后,推出了各式各樣的JSP引擎。Tomcat是ApacheGroup推出的一個免費的開源項目,它可以作為Web服務(wù)器使用,也可以作為其他Web服務(wù)器的JSP引擎。

Tomcat目前的最新版本為6.0.14,可以從/中免費下載,安裝Tomcat6.0之前首先要安裝JRE5。如果使用JBuilder2006則無需再安裝Tomcat即可調(diào)試JSP頁面,因為JBuilder2006已經(jīng)附帶了Tomcat4.0及Tomcat5.5,可以直接使用。如果想使用最新的Tomcat版本,也可以按照下面的步驟安裝后,再在JBuilder2006中配置使用新版本。

Tomcat可在Windows及Linux等多種操作系統(tǒng)下運行,下載時應(yīng)根據(jù)操作系統(tǒng)選擇合適的版本。下面以WindowsXP操作系統(tǒng)為例簡要介紹Tomcat6.0的安裝步驟。

適合Windows各版本的安裝程序為一個EXE文件,例如Tomcat6.0.14安裝程序的文件名為apache-tomcat-6.0.14.exe,執(zhí)行該程序按照提示即可安裝。

(1)運行安裝程序,稍候片刻,顯示如圖10.2所示的畫面,單擊Next按鈕,在圖10.3所示的畫面中點擊IAgree按鈕接受Tomcat許可協(xié)議。

(2)選擇安裝類型。如圖10.4所示,通常只需接受默認(rèn)安裝類型Normal,直接點擊Next按鈕即可。圖10.2安裝程序啟動畫面圖10.3接受Tomcat許可協(xié)議圖10.4選擇安裝類型

(3)選擇安裝位置。在圖10.5中指定安裝位置,如果使用默認(rèn)安裝位置,只需直接點擊Next按鈕即可。如果需要選擇安裝位置,可點擊Browse按鈕,在彈出的對話框中選擇安裝目錄。

(4)配置端口、用戶名和密碼。圖10.6允許指定Tomcat服務(wù)器所使用的端口,默認(rèn)端口設(shè)定為8080。如果你的計算機已安裝了其他Web服務(wù)器或代理服務(wù)器使用了該端口,可以在圖10.6中修改該端口(HTTP/1.1ConnectorPort)。圖10.6還允許設(shè)定Tomcat服務(wù)器管理員賬號和密碼,如果修改了用戶名和密碼,則務(wù)必牢記。設(shè)定完畢后點擊Next按鈕。圖10.5指定安裝目錄圖10.6配置端口、用戶名和密碼

(5)?Tomcat安裝程序會自動查找Java虛擬機的安裝位置,如果你的計算機安裝了多個版本的Java虛擬機,可自行指定Java虛擬機所在目錄。如果不需修改,則直接點擊Install按鈕開始安裝,如圖10.7所示。

(6)安裝完畢顯示如圖10.8所示的畫面,點擊Finish按鈕完成安裝并啟動Tomcat服務(wù)器。如果成功啟動Tomcat服務(wù)器,將在任務(wù)欄上顯示如圖10.9所示的Tomcat圖標(biāo)??梢杂覔粼搱D標(biāo),通過彈出式菜單配置、停止和啟動Tomcat服務(wù)器。圖10.7選擇JRE安裝位置圖10.8安裝完畢圖10.9任務(wù)欄圖標(biāo)

(7)測試是否安裝成功。安裝完畢后,啟動Tomcat服務(wù)器,打開Web瀏覽器,在地址欄中輸入http://localhost:

8080/,出現(xiàn)如圖10.10所示的畫面,表示Tomcat安裝成功。圖10.10測試是否安裝成功 10.3JSP簡介

JSP是由Sun公司在Java語言的基礎(chǔ)上開發(fā)出來的一種動態(tài)網(wǎng)頁制作技術(shù),提供在HTML代碼中混合程序代碼、由語言引擎解釋執(zhí)行程序代碼的能力。

在JSP環(huán)境下,HTML代碼主要負(fù)責(zé)描述信息的顯示樣式,而程序代碼則用來描述處理邏輯。普通的HTML頁面只依賴于Web服務(wù)器,而JSP頁面需要附加的語言引擎分析和執(zhí)行程序代碼。程序代碼的執(zhí)行結(jié)果被重新嵌入到HTML代碼中,然后一起發(fā)送給瀏覽器。JSP是面向Web服務(wù)器的技術(shù),客戶端瀏覽器不需要任何附加的軟件支持。執(zhí)行JSP代碼需要在服務(wù)器上安裝JSP引擎,JSP中的Java代碼均在服務(wù)器端執(zhí)行。在瀏覽器中使用“查看源文件”菜單是無法看到JSP源代碼的,只能看到結(jié)果——HTML代碼。JSP頁面看起來像普通HTML頁面,但它允許嵌入執(zhí)行代碼。

JSP技術(shù)使得程序員可以使用平常得心應(yīng)手的工具并按照平常的方式來書寫HTML語句,然后將動態(tài)部分用特殊的標(biāo)記(或稱為標(biāo)簽)嵌入即可,這些標(biāo)記常常以“<%”開始并以“%>”結(jié)束。程序10.1是一個簡單的JSP頁面,在Tomcat安裝目錄下的webapps目錄下創(chuàng)建一個子目錄,例如hello,然后使用文本編輯程序輸入該文件內(nèi)容,保存到該目錄下,文件的類型為jsp,例如可命名為hello.jsp。在瀏覽器地址欄中輸入http://localhost:8080/hello/hello.jsp,即可看到該頁面的執(zhí)行結(jié)果,它將輸出“helloworld”。該文件中的out.println(“helloworld”)將被解釋為System.out.println(“helloworld”)?!境绦?0.1】一個簡單的JSP頁面。

<html>

<head>

<title>一個簡單的JSP頁面</title>

</head>

<body>

<I><%out.println("helloworld");%></I>

</body>

</html>通常,JSP文件應(yīng)以“.jsp”為擴(kuò)展名,并將它放置到任何你可以放置普通Web頁面的路徑下。

JSP使用標(biāo)簽和Scriplet(用標(biāo)準(zhǔn)Java語法寫的一小段內(nèi)嵌入JSP文件中的代碼)編寫頁面動態(tài)內(nèi)容,JSP可以通過標(biāo)簽和Scriplet引用JavaEE服務(wù)器端的Bean(可理解為符合JavaEE特定標(biāo)準(zhǔn)的Java類)。通??梢詫⒁恍┎豢梢姷纳虅?wù)邏輯放在這些Bean中實現(xiàn),而JSP頁面主要用于展現(xiàn)用戶界面。限于篇幅,本章僅通過例子簡單介紹JSP。

程序10.2是一個顯示當(dāng)前日期事件的JSP頁面,其中使用了JSP的一個重要標(biāo)簽:

<%=表達(dá)式%>該標(biāo)簽在其所在位置輸出表達(dá)式的值。

【程序10.2】顯示當(dāng)前日期時間JSP頁面。

<html>

<head>

<title>FirstPage</title>

</head>

<body>

Todayis:

<%=newjava.util.Date()%>

</body>

</html>

10.4案例:網(wǎng)上書店查詢頁面

10.4.1功能需求

本節(jié)給出一個連接數(shù)據(jù)庫的JSP頁面的實例,本實例為一個網(wǎng)絡(luò)書店應(yīng)用系統(tǒng)的功能模塊。該模塊允許客戶在線查詢所有不同圖書的信息,這些信息包括:圖書的作者、封面照片、價格、ISBN、版本號、出版時間及該書的一些簡介。

圖10.11和圖10.12是本案例的運行畫面。圖10.11使用一個選擇列表框顯示所有圖書名的列表,用戶選擇圖書,然后點擊“查看詳細(xì)信息”按鈕顯示如圖10.12所示的詳細(xì)信息。圖10.11顯示圖書列表圖10.12顯示圖書詳細(xì)信息本案例采用Access數(shù)據(jù)庫,數(shù)據(jù)庫中有一個名為products的表,結(jié)構(gòu)如表10.1所示。表10.1案例所用表結(jié)構(gòu)10.4.2創(chuàng)建books.jsp頁面

本節(jié)首先創(chuàng)建books.jsp頁面,顯示可選擇的圖書,其頁面運行效果如圖10.11所示。JSP頁面是標(biāo)準(zhǔn)的文本文件,主體結(jié)構(gòu)為HTML。程序10.3給出了books.jsp源文件,為了便于解釋,每行加了一個行號。

books.jsp使用了很多標(biāo)準(zhǔn)的HTML標(biāo)記來構(gòu)造頁面。第4行和第57行分別為HTML起始和結(jié)束標(biāo)記;第5行到第7行為HTML文檔頭部;從第8行開始為HTML的主體(body)部分,該部分由一個表單(Form)構(gòu)成,提交表單時,訪問bookInf.jsp頁面顯示詳細(xì)信息。表單主要由一個顯示圖書名列表的選擇列表框(select標(biāo)記)和一個按鈕構(gòu)成,列表框中顯示的圖書名需要通過Java代碼從數(shù)據(jù)庫中讀取。除了標(biāo)準(zhǔn)的HTML標(biāo)記,books.jsp中還用到部分JSP標(biāo)簽,下面簡單解釋一下其作用:

第1行指定本頁面采用的編碼為gb2312,主要是為了JSP引擎能正確處理中文信息。

第2行<%--開始,--%>結(jié)束為注釋,解釋第3行的作用。

第3行再由JSP引擎轉(zhuǎn)換為Java代碼importjava.sql.*,讀者應(yīng)能很容易看出其對應(yīng)關(guān)系。第1行和第3行均為對整個頁面的設(shè)置(<%page%>),應(yīng)放在HTML標(biāo)記開始前。

從第16行開始嵌入大段的Java代碼,這部分代碼用于連接數(shù)據(jù)庫,采用了第9章介紹的訪問數(shù)據(jù)庫的過程,訪問ODBC數(shù)據(jù)源bookstore中的products數(shù)據(jù)表,讀取所有記錄的title字段。第38行用表達(dá)式標(biāo)簽輸出圖書名?!境绦?0.3】books.jsp源文件。

1.<%@pagecontentType="text/html;charset=gb2312"%>

2.<%--importjava.sql.*fordatabaseclasses--%>

3.<%@pageimport="java.sql.*"%>

4.<html>

5.<head>

6.<title>圖書列表</title>

7.</head>

8.<body>

9.<h1>可選擇的圖書</h1>

10.<!--createform-->11.<formmethod="post"action="bookInf.jsp">

12.<p>請從列表中選擇圖書名</p>

13.<!--createlistthatcontainsbooktitlesfromdatabase-->

14.<selectname="bookTitle">

15.<%--連接數(shù)據(jù)庫--%>

16.<%

17.//setupdatabaseconnection

18.try

19.{

20.Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");21.//connecttodatabase

22.Connectionconnection=

23.DriverManager.getConnection(

24."jdbc:odbc:bookstore");

25.//obtainlistoftitles

26.if(connection!=null)

27.{

28.Statementstatement=

29.connection.createStatement();

30.ResultSetresults=statement.executeQuery(

31."SELECTtitleFROMproducts");32.while(results.next()==true)

33.{

34.StringcurrentTitle=

35.results.getString("title");

36.%>

37.<%--循環(huán)輸出圖書名--%>

38.<option><%=currentTitle%></option>

39.<%

40.}//循環(huán)結(jié)束

41.results.close();//關(guān)閉結(jié)果集

42.connection.close();//關(guān)閉數(shù)據(jù)庫連接43.}//endif

44.}//endtry

45.//catchSQLException

46.catch(SQLExceptionexception)

47.{

48.out.println(

49."Exception:"+exception+"occurred.");

50.}

51.%>

52.</select>

53.<!--createViewInformationbutton-->

54.<p><inputtype=“submit”value=“查看詳細(xì)信息”></p>

55.</form>

56.</body>

57.</html>

10.4.3創(chuàng)建bookInf.jsp頁面

程序10.3中,當(dāng)用戶點擊“查看詳細(xì)信息”按鈕時,由表單action屬性指定的bookInf.jsp響應(yīng)的源程序清單如程序10.4所示。通過books.jsp表單提交的圖書名參數(shù)通過request對象獲取,第13行指定表單參數(shù)使用gb2312編碼,第15行通過request.

getParameter獲取參數(shù),該方法的參數(shù)為表單中該項的名字?!境绦?0.4】bookInf.jsp源代碼。

1.<%@pagecontentType="text/html;charset=gb2312"%>

2.<%--importjava.sql.*fordatabaseclasses--%>

3.<%@pageimport="java.sql.*"%>

4.<!--beginHTMLdocument-->

5.<html>

6.<!--specifyheadelement-->

7.<head>

8.<!--specifypagetitle-->

9.<title>BookInformation</title>10.</head>

11.<!--beginbodyofdocument-->

12.<body>

13.<%request.setCharacterEncoding("gb2312");%>

14.<!--createaheadingforthebook'stitle-->

15.<h1><%=request.getParameter("bookTitle")%></h1>

16.<%--beginJSPscriptlettoconnecttoadatabase--%>

17.<%

18.//setupdatabaseconnection

19.try

20.{21.//specifydatabaselocation

22.

23.Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

24.//obtainconnectiontodatabase

25.Connectionconnection=DriverManager.getConnection(

26."jdbc:odbc:bookstore");

27.

28.//obtainlistoftitlesfromdatabase

29.if(connection!=null)

30.{

31.//createstatement32.Statementstatement=connection.createStatement();

33.

34.//executequerytogetbookinformation

35.ResultSetresults=statement.executeQuery(

36."SELECTcover,title,authors,price,isbn,"+

37."edition,copyrightYear,description"+

38."FROMproductsWHEREtitle='"+

39.request.getParameter("bookTitle")+"'");

40.

41.results.next();//movecursortothefirstrow

42.43.%><%--endscriptlettoinsertliteralXHTML--%>

44.

45.<!--displaybookcoverimage-->

46.<imgsrc="images/<%=results.getString(

47."cover")%>"alt="Bookcoverfor

48.<%=results.getString("title")%>.">

49.

50.<!--displayauthors-->

51.<p>作者:<%=results.getString(

52."authors")%></p>

53.54.<!--displayprice-->

55.<p>價格:<%=results.getString("price")%></p>

56.

57.<!--displayISBN-->

58.<p>ISBN:<%=results.getString("isbn")%></p>

59.

60.<!--displayeditionnumber-->

61.<p>版本:<%=results.getInt("edition")%></p>

62.

63.<!--displaycopyrightyear-->

64.<p>出版時間:<%=results.getString(65."copyrightYear")%></p>

66.

67.<!--displayauthors-->

68.<p>簡介:<%=results.getString(

69."description")%></p>

70.

71.<!--createlinktoBookList-->

72.<p><ahref="books.jsp">圖書列表</a></p>

73.

74.<%//continuescriptlet

75.76.results.close();//closeresultset

77.connection.close();//closedatabaseconnection

78.

79.}//endif

80.

81.}//endtry

82.

83.//catchSQLException

84.catch(SQLExceptionexception)

85.{

86.out.println("Exception:"+exception+"occurred.");87.}

88.

89.%><%--endscriptlet--%>

90.

91.</body>

92.</html>

實訓(xùn)十簡易Web應(yīng)用

一、實訓(xùn)目的

1.了解JSP的基本原理。

2.使用Tomcat運行JSP編寫的Web應(yīng)用。

二、實訓(xùn)內(nèi)容

1.網(wǎng)上書店查詢頁面案例的運行。

(1)建立數(shù)據(jù)庫。使用Access建立一個數(shù)據(jù)庫文件,然后在該數(shù)據(jù)庫中按照表10.1中的字段結(jié)構(gòu)建立表products,productID作為該表主鍵,并在表中輸入若干條記錄。

(2)建立ODBC別名。參照實訓(xùn)九中介紹的方法建立一個ODBC別名bookstore,用于訪問上面建立的數(shù)據(jù)庫。

(3)輸入源程序。

●不使用集成環(huán)境

①在Tomcat安裝目錄下的webapps目錄下創(chuàng)建一個子目錄bookstore,在該目錄下創(chuàng)建images子目錄,將products表中所有記錄cover字段(圖書封面圖片文件名)代表的圖片復(fù)制到images子目錄中。

②使用記事本輸入books.jsp和bookInf.jsp,保存到bookstore目錄下。③啟動Tomcat6.0。如果Tomcat6.0未自動啟動,可通過單擊“開始”菜單→程序→ApacheTomcat6.0啟動“MonitorTomcat”,然后通過任務(wù)欄圖標(biāo)啟動Tomcat6.0。

④啟動IE

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論