版權(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”)。【程序10.1】一個簡單的JSP頁面。
<html>
<head>
<title>一個簡單的JSP頁面</title>
</head>
<body>
<I><%out.println("helloworld");%></I>
</body>
</html>通常,JSP文件應(yīng)以“.jsp”為擴展名,并將它放置到任何你可以放置普通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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45097.2-2024智能消費品安全第2部分:風(fēng)險評估
- 2024年苗木種植與環(huán)保技術(shù)合作合同3篇
- 2024年遠(yuǎn)程監(jiān)控設(shè)施安裝協(xié)議3篇
- 倉庫叉車租賃合同
- 水產(chǎn)品安全質(zhì)量協(xié)議書
- 國際體育俱樂部租賃合約
- 城市輕軌監(jiān)理招標(biāo)文件樣本
- 廣東省加油站非油品業(yè)務(wù)拓展
- 工業(yè)園區(qū)臨電施工合同
- 醫(yī)療行業(yè)專家顧問聘用合同模板
- 期末(試題)-2024-2025學(xué)年人教PEP版英語六年級上冊
- 三創(chuàng)賽獲獎-非遺文化創(chuàng)新創(chuàng)業(yè)計劃書
- 冷庫項目專項扶持資金申請報告(模板范本)
- 鉑銠合金漏板.
- (完整版)建筑力學(xué)(習(xí)題答案)
- 少年宮籃球活動教案
- 國有建設(shè)企業(yè)《大宗材料及設(shè)備采購招標(biāo)管理辦法》
- 民間秘術(shù)絕招大全
- N摻雜TiO2納米管的合成及光催化性能研究
- 二沉池設(shè)計說明書
- (完整版)展廳展館博物館美術(shù)館設(shè)計標(biāo)招標(biāo)評分細(xì)則及打分表
評論
0/150
提交評論