版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Good is good, but better carries it.精益求精,善益求善。J2EE服務器應用開發(fā)目錄TOCo1-3hzuHYPERLINKl_Toc150240007第1章Web應用入門PAGEREF_Toc150240007h1HYPERLINKl_Toc1502400081.1Web應用概述PAGEREF_Toc150240008h2HYPERLINKl_Toc1502400091.1.1Web應用程序特點PAGEREF_Toc150240009h2HYPERLINKl_Toc1502400101.1.2HTTP請求PAGEREF_Toc150240010h2HYPERL
2、INKl_Toc1502400111.1.3Web應用程序體系結構PAGEREF_Toc150240011h3HYPERLINKl_Toc1502400121.2JavaWeb環(huán)境搭建PAGEREF_Toc150240012h4HYPERLINKl_Toc1502400131.2.1Tomcat的啟動PAGEREF_Toc150240013h4HYPERLINKl_Toc1502400141.2.2Web應用程序目錄結構PAGEREF_Toc150240014h5HYPERLINKl_Toc1502400151.2.3示例:建立簡單的Web程序并運行PAGEREF_Toc150240015h6
3、HYPERLINKl_Toc1502400161.3Servlet入門PAGEREF_Toc150240016h7HYPERLINKl_Toc1502400171.3.1什么是ServletPAGEREF_Toc150240017h7HYPERLINKl_Toc1502400181.3.2為什么要使用ServletPAGEREF_Toc150240018h8HYPERLINKl_Toc1502400191.3.3編寫Servlet的準備工作PAGEREF_Toc150240019h9HYPERLINKl_Toc1502400201.3.4運行Servlet的前提PAGEREF_Toc15024
4、0020h9HYPERLINKl_Toc1502400211.3.5第一個ServletPAGEREF_Toc150240021h10HYPERLINKl_Toc1502400221.4簡單Servlet應用PAGEREF_Toc150240022h12HYPERLINKl_Toc1502400231.5本章小結PAGEREF_Toc150240023h14HYPERLINKl_Toc1502400241.6思考與練習PAGEREF_Toc150240024h14HYPERLINKl_Toc1502400251.6.1簡答題PAGEREF_Toc150240025h14HYPERLINKl_T
5、oc1502400261.6.2操作題PAGEREF_Toc150240026h15HYPERLINKl_Toc150240027第2章Servlet基礎PAGEREF_Toc150240027h16HYPERLINKl_Toc1502400282.1Servlet基本結構PAGEREF_Toc150240028h17HYPERLINKl_Toc1502400292.1.1Servlet運行原理PAGEREF_Toc150240029h17HYPERLINKl_Toc1502400302.1.2Servlet層次結構PAGEREF_Toc150240030h17HYPERLINKl_Toc15
6、02400312.2Servlet生命周期PAGEREF_Toc150240031h19HYPERLINKl_Toc1502400322.2.1Servlet生命周期的含義PAGEREF_Toc150240032h19HYPERLINKl_Toc1502400332.2.2Servlet生命周期的各方法的使用一PAGEREF_Toc150240033h21HYPERLINKl_Toc1502400342.2.3Servlet生命周期的各方法的使用二PAGEREF_Toc150240034h24HYPERLINKl_Toc1502400352.3ServletRequest對象PAGEREF_T
7、oc150240035h26HYPERLINKl_Toc1502400362.3.1訪問servlet的方法PAGEREF_Toc150240036h26HYPERLINKl_Toc1502400372.3.2ServletRequest對象以及參數(shù)傳遞PAGEREF_Toc150240037h27HYPERLINKl_Toc1502400382.4ServletResponse對象PAGEREF_Toc150240038h32HYPERLINKl_Toc1502400392.5ServletContext對象PAGEREF_Toc150240039h32HYPERLINKl_Toc15024
8、00402.5.1ServletContext對象的主要方法PAGEREF_Toc150240040h32HYPERLINKl_Toc1502400412.5.2使用getInitParameter方法讀取web.xml中的參數(shù)PAGEREF_Toc150240041h33HYPERLINKl_Toc1502400422.6ServletConfig對象PAGEREF_Toc150240042h36HYPERLINKl_Toc1502400432.6.1ServletConfig對象的主要方法PAGEREF_Toc150240043h36HYPERLINKl_Toc1502400442.6.2
9、使用ServletConfig對象讀取初始化參數(shù)PAGEREF_Toc150240044h36HYPERLINKl_Toc1502400452.7Servlet應用PAGEREF_Toc150240045h39HYPERLINKl_Toc1502400462.7.1使用固定用戶名密碼實現(xiàn)登陸驗證PAGEREF_Toc150240046h39HYPERLINKl_Toc1502400472.7.2通過文件讀取用戶名密碼,驗證登錄PAGEREF_Toc150240047h41HYPERLINKl_Toc1502400482.7.3實現(xiàn)注冊新用戶的功能,把新用戶的信息寫入文件PAGEREF_Toc1
10、50240048h42HYPERLINKl_Toc1502400492.8本章小結PAGEREF_Toc150240049h48HYPERLINKl_Toc1502400502.9思考與練習PAGEREF_Toc150240050h48HYPERLINKl_Toc1502400512.9.1簡答題PAGEREF_Toc150240051h48HYPERLINKl_Toc1502400522.9.2操作題PAGEREF_Toc150240052h48HYPERLINKl_Toc150240053第3章服務器應用對象PAGEREF_Toc150240053h49HYPERLINKl_Toc1502
11、400543.1應用對象列表PAGEREF_Toc150240054h50HYPERLINKl_Toc1502400553.2ServletContextServlet上下文PAGEREF_Toc150240055h50HYPERLINKl_Toc1502400563.3Sesssion講解PAGEREF_Toc150240056h53HYPERLINKl_Toc1502400573.3.1使用HttpSession對象維護會話信息PAGEREF_Toc150240057h53HYPERLINKl_Toc1502400583.3.2HttpSession接口的重要方法PAGEREF_Toc15
12、0240058h53HYPERLINKl_Toc1502400593.3.3使用HttpSession實現(xiàn)私人累加器PAGEREF_Toc150240059h54HYPERLINKl_Toc1502400603.4購物車設計PAGEREF_Toc150240060h55HYPERLINKl_Toc1502400613.4.1單版購物車PAGEREF_Toc150240061h55HYPERLINKl_Toc1502400623.4.2網(wǎng)絡購物車PAGEREF_Toc150240062h58HYPERLINKl_Toc1502400633.5頁面跳轉方法PAGEREF_Toc150240063h
13、62HYPERLINKl_Toc1502400643.6Servlet間傳遞參數(shù)方法PAGEREF_Toc150240064h62HYPERLINKl_Toc1502400653.6.1應用程序范圍上參數(shù)的傳遞PAGEREF_Toc150240065h63HYPERLINKl_Toc1502400663.6.2會話范圍上參數(shù)的傳遞PAGEREF_Toc150240066h65HYPERLINKl_Toc1502400673.6.3請求范圍上的參數(shù)的傳遞PAGEREF_Toc150240067h68HYPERLINKl_Toc1502400683.7本章小結PAGEREF_Toc15024006
14、8h70HYPERLINKl_Toc1502400693.8思考與練習PAGEREF_Toc150240069h71HYPERLINKl_Toc1502400703.8.1簡答題PAGEREF_Toc150240070h71HYPERLINKl_Toc1502400713.8.2操作題PAGEREF_Toc150240071h71HYPERLINKl_Toc150240072第4章JSP基礎PAGEREF_Toc150240072h72HYPERLINKl_Toc1502400734.1JSP簡介PAGEREF_Toc150240073h73HYPERLINKl_Toc1502400744.1
15、.1JSP的概念PAGEREF_Toc150240074h73HYPERLINKl_Toc1502400754.1.2JSP的執(zhí)行過程PAGEREF_Toc150240075h73HYPERLINKl_Toc1502400764.2JSP語法PAGEREF_Toc150240076h74HYPERLINKl_Toc1502400774.2.1腳本元素PAGEREF_Toc150240077h74HYPERLINKl_Toc1502400784.2.2注釋PAGEREF_Toc150240078h78HYPERLINKl_Toc1502400794.2.3轉義規(guī)則PAGEREF_Toc15024
16、0079h79HYPERLINKl_Toc1502400804.3指令元素PAGEREF_Toc150240080h79HYPERLINKl_Toc1502400814.3.1page指令PAGEREF_Toc150240081h80HYPERLINKl_Toc1502400824.3.2include指令PAGEREF_Toc150240082h81HYPERLINKl_Toc1502400834.3.3taglib指令PAGEREF_Toc150240083h82HYPERLINKl_Toc1502400844.4標準動作PAGEREF_Toc150240084h82HYPERLINKl_
17、Toc1502400854.4.1PAGEREF_Toc150240085h83HYPERLINKl_Toc1502400864.4.2PAGEREF_Toc150240086h83HYPERLINKl_Toc1502400874.4.3PAGEREF_Toc150240087h83HYPERLINKl_Toc1502400884.4.4標準動作的簡單使用PAGEREF_Toc150240088h83HYPERLINKl_Toc1502400894.5JSP中的隱含對象PAGEREF_Toc150240089h84HYPERLINKl_Toc1502400904.5.1request對象PAG
18、EREF_Toc150240090h85HYPERLINKl_Toc1502400914.5.2response對象PAGEREF_Toc150240091h88HYPERLINKl_Toc1502400924.5.3out對象PAGEREF_Toc150240092h88HYPERLINKl_Toc1502400934.5.4session對象PAGEREF_Toc150240093h88HYPERLINKl_Toc1502400944.5.5application對象PAGEREF_Toc150240094h89HYPERLINKl_Toc1502400954.5.6pageContext
19、對象PAGEREF_Toc150240095h89HYPERLINKl_Toc1502400964.5.7page對象PAGEREF_Toc150240096h89HYPERLINKl_Toc1502400974.5.8config對象PAGEREF_Toc150240097h89HYPERLINKl_Toc1502400984.5.9exception對象PAGEREF_Toc150240098h90HYPERLINKl_Toc1502400994.6JSP范圍PAGEREF_Toc150240099h90HYPERLINKl_Toc1502401004.6.1JSP范圍PagePAGERE
20、F_Toc150240100h90HYPERLINKl_Toc1502401014.6.2JSP范圍RequestPAGEREF_Toc150240101h90HYPERLINKl_Toc1502401024.6.3JSP范圍SessionPAGEREF_Toc150240102h91HYPERLINKl_Toc1502401034.6.4JSP范圍ApplicationPAGEREF_Toc150240103h91HYPERLINKl_Toc1502401044.7本章小結PAGEREF_Toc150240104h91HYPERLINKl_Toc1502401054.8思考與練習PAGERE
21、F_Toc150240105h91HYPERLINKl_Toc1502401064.8.1簡答題PAGEREF_Toc150240106h91HYPERLINKl_Toc1502401074.8.2操作題PAGEREF_Toc150240107h92HYPERLINKl_Toc150240108第5章JavaBean組件技術PAGEREF_Toc150240108h93HYPERLINKl_Toc1502401095.1JavaBean的概念PAGEREF_Toc150240109h94HYPERLINKl_Toc1502401105.1.1JavaBean簡介PAGEREF_Toc15024
22、0110h94HYPERLINKl_Toc1502401115.1.2JavaBean的屬性PAGEREF_Toc150240111h94HYPERLINKl_Toc1502401125.2JavaBean使用PAGEREF_Toc150240112h95HYPERLINKl_Toc1502401135.2.1標準動作PAGEREF_Toc150240113h95HYPERLINKl_Toc1502401145.2.2標準動作PAGEREF_Toc150240114h96HYPERLINKl_Toc1502401155.2.3標準動作PAGEREF_Toc150240115h97HYPERLI
23、NKl_Toc1502401165.2.4JavaBean的Scope屬性PAGEREF_Toc150240116h97HYPERLINKl_Toc1502401175.2.5JavaBean的簡單應用PAGEREF_Toc150240117h97HYPERLINKl_Toc1502401185.3JavaBean應用實例PAGEREF_Toc150240118h100HYPERLINKl_Toc1502401195.3.1編制商品展示頁面home.htmlPAGEREF_Toc150240119h100HYPERLINKl_Toc1502401205.3.2編寫一個購物車JavaBeanCa
24、rtBean.javaPAGEREF_Toc150240120h101HYPERLINKl_Toc1502401215.3.3編制購物車JSP頁面cart.jspPAGEREF_Toc150240121h103HYPERLINKl_Toc1502401225.4Web應用中訪問數(shù)據(jù)庫PAGEREF_Toc150240122h104HYPERLINKl_Toc1502401235.4.1數(shù)據(jù)庫訪問類PAGEREF_Toc150240123h104HYPERLINKl_Toc1502401245.4.2Web應用(多Servlet)PAGEREF_Toc150240124h107HYPERLINK
25、l_Toc1502401255.4.3Web應用(單Servlet)PAGEREF_Toc150240125h114HYPERLINKl_Toc1502401265.5JSP/Servlet如何傳遞參數(shù)PAGEREF_Toc150240126h116HYPERLINKl_Toc1502401275.6本章小結PAGEREF_Toc150240127h118HYPERLINKl_Toc1502401285.7思考與練習PAGEREF_Toc150240128h118HYPERLINKl_Toc1502401295.7.1簡答題PAGEREF_Toc150240129h118HYPERLINKl_
26、Toc1502401305.7.2操作題PAGEREF_Toc150240130h119HYPERLINKl_Toc150240131第6章使用JSTL標簽庫PAGEREF_Toc150240131h120HYPERLINKl_Toc1502401326.1JSP定制標簽PAGEREF_Toc150240132h121HYPERLINKl_Toc1502401336.1.1什么是JSP定制標簽PAGEREF_Toc150240133h121HYPERLINKl_Toc1502401346.1.2如何使用JSP定制標簽庫PAGEREF_Toc150240134h122HYPERLINKl_Toc
27、1502401356.1.3第三方JSP定制標簽庫PAGEREF_Toc150240135h123HYPERLINKl_Toc1502401366.2JSTL1.0PAGEREF_Toc150240136h124HYPERLINKl_Toc1502401376.2.1安裝使用JSTL1.0PAGEREF_Toc150240137h124HYPERLINKl_Toc1502401386.2.2使用JSTL1.0的簡單例子PAGEREF_Toc150240138h125HYPERLINKl_Toc1502401396.3表達式語言(EL)PAGEREF_Toc150240139h125HYPERL
28、INKl_Toc1502401406.3.1表達式語言語法PAGEREF_Toc150240140h126HYPERLINKl_Toc1502401416.3.2表達式語言隱含對象PAGEREF_Toc150240141h127HYPERLINKl_Toc1502401426.3.3表達式語言運算符PAGEREF_Toc150240142h132HYPERLINKl_Toc1502401436.4核心標簽庫PAGEREF_Toc150240143h135HYPERLINKl_Toc1502401446.4.1表達式操作PAGEREF_Toc150240144h136HYPERLINKl_Toc
29、1502401456.4.2迭代操作PAGEREF_Toc150240145h141HYPERLINKl_Toc1502401466.4.3流程控制PAGEREF_Toc150240146h147HYPERLINKl_Toc1502401476.4.4URL操作PAGEREF_Toc150240147h149HYPERLINKl_Toc1502401486.5本章小結PAGEREF_Toc150240148h151HYPERLINKl_Toc1502401496.6思考與練習PAGEREF_Toc150240149h152HYPERLINKl_Toc1502401506.6.1簡答題PAGER
30、EF_Toc150240150h152HYPERLINKl_Toc1502401516.6.2操作題PAGEREF_Toc150240151h152HYPERLINKl_Toc150240152第7章Servlet高級應用PAGEREF_Toc150240152h153HYPERLINKl_Toc1502401537.1ServletContext對象PAGEREF_Toc150240153h154HYPERLINKl_Toc1502401547.1.1Web應用程序的初始參數(shù)PAGEREF_Toc150240154h154HYPERLINKl_Toc1502401557.1.2Servlet
31、Context對象的方法和屬性PAGEREF_Toc150240155h156HYPERLINKl_Toc1502401567.2與ServletContext對象相關的偵聽器和事件PAGEREF_Toc150240156h158HYPERLINKl_Toc1502401577.2.1ServletContext生命周期PAGEREF_Toc150240157h158HYPERLINKl_Toc1502401587.2.2ServletContextListener偵聽器PAGEREF_Toc150240158h159HYPERLINKl_Toc1502401597.2.3ServletCon
32、textAttributeListener偵聽器PAGEREF_Toc150240159h162HYPERLINKl_Toc1502401607.3與HttpSession對象相關的偵聽器和事件PAGEREF_Toc150240160h163HYPERLINKl_Toc1502401617.3.1HttpSessionListener偵聽器PAGEREF_Toc150240161h163HYPERLINKl_Toc1502401627.3.2利用偵聽器完成在線人數(shù)統(tǒng)計工作的示例PAGEREF_Toc150240162h164HYPERLINKl_Toc1502401637.3.3HttpSes
33、sionAttributeListener偵聽器PAGEREF_Toc150240163h166HYPERLINKl_Toc1502401647.4過濾器PAGEREF_Toc150240164h166HYPERLINKl_Toc1502401657.4.1過濾器的概念PAGEREF_Toc150240165h166HYPERLINKl_Toc1502401667.4.2應用過濾器PAGEREF_Toc150240166h168HYPERLINKl_Toc1502401677.5本章小結PAGEREF_Toc150240167h173HYPERLINKl_Toc1502401687.6思考與練
34、習PAGEREF_Toc150240168h173HYPERLINKl_Toc1502401697.6.1簡答題PAGEREF_Toc150240169h173HYPERLINKl_Toc1502401707.6.2操作題PAGEREF_Toc150240170h173HYPERLINKl_Toc150240171第8章Java的模板設計PAGEREF_Toc150240171h174HYPERLINKl_Toc1502401728.1Velocity模板PAGEREF_Toc150240172h175HYPERLINKl_Toc1502401738.1.1Velocity的簡單使用PAGER
35、EF_Toc150240173h175HYPERLINKl_Toc1502401748.1.2Set語句和條件語句PAGEREF_Toc150240174h178HYPERLINKl_Toc1502401758.1.3邏輯運算符PAGEREF_Toc150240175h181HYPERLINKl_Toc1502401768.1.4循環(huán)語句Foreach循環(huán)PAGEREF_Toc150240176h182HYPERLINKl_Toc1502401778.1.5Parse和StopPAGEREF_Toc150240177h183HYPERLINKl_Toc1502401788.1.6Velocim
36、acrosVelocity宏PAGEREF_Toc150240178h184HYPERLINKl_Toc1502401798.2Veclocity在Servlet中應用PAGEREF_Toc150240179h185HYPERLINKl_Toc1502401808.3JSP中的模板使用PAGEREF_Toc150240180h188HYPERLINKl_Toc1502401818.3.1運用模板思想的簡單JSPPAGEREF_Toc150240181h188HYPERLINKl_Toc1502401828.4本章小結PAGEREF_Toc150240182h190HYPERLINKl_Toc1
37、502401838.5思考與練習PAGEREF_Toc150240183h190HYPERLINKl_Toc1502401848.5.1簡答題PAGEREF_Toc150240184h190HYPERLINKl_Toc1502401858.5.2操作題PAGEREF_Toc150240185h191HYPERLINKl_Toc150240186第9章Web開發(fā)與模式應用PAGEREF_Toc150240186h192HYPERLINKl_Toc1502401879.1MVC模式PAGEREF_Toc150240187h193HYPERLINKl_Toc1502401889.1.1MVC概念PA
38、GEREF_Toc150240188h193HYPERLINKl_Toc1502401899.1.2應用PAGEREF_Toc150240189h193HYPERLINKl_Toc1502401909.2命令模式PAGEREF_Toc150240190h195HYPERLINKl_Toc1502401919.2.1簡單應用PAGEREF_Toc150240191h196HYPERLINKl_Toc1502401929.2.2Web中的應用PAGEREF_Toc150240192h199HYPERLINKl_Toc1502401939.3策略模式PAGEREF_Toc150240193h201H
39、YPERLINKl_Toc1502401949.3.1基礎應用PAGEREF_Toc150240194h202HYPERLINKl_Toc1502401959.3.2Web中的應用PAGEREF_Toc150240195h205HYPERLINKl_Toc1502401969.4本章小結PAGEREF_Toc150240196h209HYPERLINKl_Toc1502401979.5思考與練習PAGEREF_Toc150240197h209HYPERLINKl_Toc1502401989.5.1簡答題PAGEREF_Toc150240198h209HYPERLINKl_Toc15024019
40、99.5.2操作題PAGEREF_Toc150240199h209HYPERLINKl_Toc150240200第10章技術解決方案PAGEREF_Toc150240200h210HYPERLINKl_To1JavaMailPAGEREF_Toc150240201h211HYPERLINKl_To1.1JavaMailAPIPAGEREF_Toc150240202h211HYPERLINKl_To1.2JavaMail的使用步驟及簡單應用PAGEREF_Toc150240203h214HYPERLINKl_Toc15
41、024020410.1.3JavaMail的Web應用PAGEREF_Toc150240204h216HYPERLINKl_To2文件上傳PAGEREF_Toc150240205h220HYPERLINKl_To2.1簡單上傳PAGEREF_Toc150240206h221HYPERLINKl_To2.2圖片上傳PAGEREF_Toc150240207h224HYPERLINKl_To3動態(tài)圖片的創(chuàng)建PAGEREF_Toc150240208h226HYPERLINKl_Toc15024020
42、910.4網(wǎng)絡投票系統(tǒng)的實現(xiàn)PAGEREF_Toc150240209h230HYPERLINKl_To5本章小結PAGEREF_Toc150240210h235HYPERLINKl_To6思考與練習PAGEREF_Toc150240211h235HYPERLINKl_To6.1簡答題PAGEREF_Toc150240212h235HYPERLINKl_To6.2操作題PAGEREF_Toc150240213h235HYPERLINKl_Toc150240214第11章自定義標簽PAGEREF
43、_Toc150240214h236HYPERLINKl_To1自定義標簽簡介PAGEREF_Toc150240215h237HYPERLINKl_To2自定義標簽的結構PAGEREF_Toc150240216h237HYPERLINKl_To2.1自定義標簽的表現(xiàn)形式PAGEREF_Toc150240217h237HYPERLINKl_To2.2Tag接口PAGEREF_Toc150240218h238HYPERLINKl_To3制作一個簡單的自定義標簽PAGERE
44、F_Toc150240219h240HYPERLINKl_To3.1編寫標簽處理器PAGEREF_Toc150240220h240HYPERLINKl_To3.2編寫標簽庫描述文件PAGEREF_Toc150240221h241HYPERLINKl_To3.3部署標簽庫PAGEREF_Toc150240222h243HYPERLINKl_To3.4在JSP頁面中使用標簽PAGEREF_Toc150240223h244HYPERLINKl_To4給標簽加屬性PAGER
45、EF_Toc150240224h245HYPERLINKl_To4.1如何在標簽處理器內處理標簽屬性PAGEREF_Toc150240225h245HYPERLINKl_To4.2在TLD文件中聲明屬性PAGEREF_Toc150240226h245HYPERLINKl_To4.3制作帶有屬性的myFont標簽PAGEREF_Toc150240227h246HYPERLINKl_To5標簽向JSP傳遞信息PAGEREF_Toc150240228h249HYPERLINKl_Toc150240
46、22911.6本章小結PAGEREF_Toc150240229h253HYPERLINKl_To7思考與練習PAGEREF_Toc150240230h253HYPERLINKl_To7.1簡答題PAGEREF_Toc150240231h253HYPERLINKl_To7.2操作題PAGEREF_Toc150240232h253Web應用入門本章重點了解Web應用程序的特點掌握Web環(huán)境的搭建以及Tomcat的使用掌握典型Web應用程序的目錄結構掌握如何創(chuàng)建和使用簡單的ServletWeb應用概述Web應用程序特點We
47、b應用程序基于B/S結構,和一般的C/S的應用程序不同。以聽音樂為例,在使用C/S結構的應用程序時,如媒體播放器,用戶輸入命令,如選擇文件,媒體播放器就會播放出該文件。隨著技術的發(fā)展,如今更多的用戶喜歡在Internet上聽音樂。這將使用戶節(jié)約大量的磁盤空間。很多的網(wǎng)站都提供各種音樂,只要用戶選擇一個或多個音樂文件,網(wǎng)站就會播放選中的文件。此時,用戶點播音樂的請求被Internet網(wǎng)絡傳輸給網(wǎng)站的Web服務器上的Web應用程序,該Web應用程序響應用戶的請求,給用戶播放選中的文件。在這種B/S結構下,用戶訪問某網(wǎng)站時實際上是訪問該網(wǎng)站的Web服務器。在Java中使用Servlet和JSP技術可
48、以開發(fā)Web應用程序。與桌面應用程序相比,Web應用程序具有以下優(yōu)點:訪問Web應用程序更容易用于訪問Web網(wǎng)頁的標準協(xié)議為HTTP協(xié)議,為絕大多數(shù)操作系統(tǒng)所支持。此外,所要求的客戶端軟件僅為瀏覽器,如MicrosoftInternetExplorer等。維護和部署成本低Web應用程序在瀏覽器中請求運行,不需要在每個客戶端系統(tǒng)上安裝客戶端軟件。Web應用程序代碼可以在服務器端進行修改和維護,這將節(jié)省更新和部署應用程序所需的時間和成本。HTTP請求通常,用戶的請求和Web應用程序的響應需要通過Internet從一臺計算機發(fā)送到另一臺計算機或服務器,使用的是超文本傳輸協(xié)議(HTTP)。HTTP客戶
49、端(如瀏覽器)需要與服務器建立一個連接,并將一則請求消息通過連接發(fā)送到HTTP服務器,以請求相應的資源。然后服務器返回帶有請求資源的相應消息。一旦回答了請求,服務器則關閉連接,這樣便沒有存儲連接信息,所以HTTP被稱為無狀態(tài)協(xié)議。HTTP請求消息使用GET或POST方法以便在Web上傳輸請求。檢索信息時使用GET方法,如檢索文檔、圖表或數(shù)據(jù)庫查詢結果。要檢索的信息作為字符參數(shù)傳遞,稱為查詢字符串。因此,傳遞的數(shù)據(jù)對客戶端是可見的。根據(jù)不同的服務器,查詢字符串的長度限制在240255個字符。例如,要使用GET方法在網(wǎng)站中查詢name為a的用戶信息,那么查詢字符串的表示為:/user?name=a
50、HTTP定義的另一種請求方法是POST方法。使用POST發(fā)送的數(shù)據(jù)對客戶端是不可見的,且對發(fā)送的數(shù)據(jù)的量沒有限制。POST方法多用來傳輸敏感數(shù)據(jù),如信用卡號或用戶的密碼等。Web應用程序體系結構大多數(shù)的應用程序由以下3個組件組成。表示層:由用戶界面和用于生成界面的代碼組成。業(yè)務層:包含系統(tǒng)的業(yè)務和功能代碼。數(shù)據(jù)存取層:負責完成存取數(shù)據(jù)庫的數(shù)據(jù)。應用程序的體系結構定義如何將這些組件組合在一起并交互完成軟件的功能。以下是3種應用程序體系結構。一層體系結構這種體系結構中,所有與表示邏輯、業(yè)務邏輯和數(shù)據(jù)存取邏輯相關的代碼都耦合在一起。二層體系結構在這種體系結構中,數(shù)據(jù)存取邏輯的代碼與業(yè)務邏輯和表示邏輯
51、分開,而且任何與數(shù)據(jù)存取層的交互都將通過業(yè)務層來完成,但表示邏輯和業(yè)務邏輯的代碼仍然耦合在一起。三層體系結構在這種體系結構中,與3個組件相關的代碼相互之間保持獨立。但是,現(xiàn)在是業(yè)務層充當數(shù)據(jù)存取層和表示層之間的接口,通常表示層不能與數(shù)據(jù)存取層進行通信。設計良好的Web應用程序通常是基于三層體系結構的。這種體系結構帶來的優(yōu)點有:大大的降低了各個組件之間的耦合性,即一個組件的更改不會影響其他兩個組件。例如,如果用戶需要更換數(shù)據(jù)庫,那么只有數(shù)據(jù)存取邏輯組件需要修改代碼。同樣,如果更改了用戶界面設計,那么只有表示邏輯組件需要修改。由于表示邏輯和數(shù)據(jù)存取邏輯相互獨立,因而可以方便地擴充表示邏輯,使系統(tǒng)具
52、有良好的可擴展性。代碼重復最少,因為在3個組件之間盡可能共享代碼。良好的分工與協(xié)作。這將使不同的小組能夠獨立的開發(fā)應用程序的不同部分,并充分發(fā)揮各自的長處和優(yōu)勢。應用于Web應用程序的三層體系結構,表示層(通常為HTML或JSP頁面)由在客戶端系統(tǒng)顯示用戶接口的代碼組成。業(yè)務層中相應的Servlet或JSP組件處理了用戶的請求后,將進一步與數(shù)據(jù)存取層交互,數(shù)據(jù)存取層進行數(shù)據(jù)庫的相應操作。JavaWeb環(huán)境搭建Tomcat的啟動安裝好Tomcat后,點擊開始運行進入到命令行界面(如圖1-1)。圖1-1命令行界面然后進入到Tomcat下的bin目錄下(如圖1-2)。圖1-2命令行界面使用start
53、up命令啟動Tomcat服務(如圖1-3、圖1-4)。圖1-3啟動Tomcat圖1-4啟動成功Web應用程序目錄結構圖1-5Tomcat目錄結構其中webapps用于發(fā)布程序集,Web應用程序就存儲在該文件夾中,如圖1-6,就是一個簡單的Web應用程序的目錄結構。圖1-6目錄結構Web應用程序有一個頂層目錄,用來標識Web應用程序。例如,如果頂層目錄的名稱為“book”,則此Web應用程序可以用http:/localhost:8080/book/來訪問。該頂層目錄結構成為文檔根目錄,有以下幾部分組成。靜態(tài)文件:包括所有的HTML網(wǎng)頁和圖像文件等。JSP頁面文件:利用JSP頁面技術可以很方便地在
54、頁面中生成動態(tài)的內容。WEB-INF:該目錄存在于Web應用程序根目錄下。主要有以下部分組成:classes目錄:存儲Servlet類、JavaBean類和Web應用程序需要的其他類。lib目錄:包含Web應用程序所需的各種.jar文件。web.xml文件:Web應用程序的部署描述文件,該文件包含有關的Web應用程序的元數(shù)據(jù)信息。根元素為。示例:建立簡單的Web程序并運行步驟一:在Tomcat下的webapps目錄下建立Web應用程序主目錄book。步驟二:在book目錄下建立WEB-INF目錄和簡單的HTML文件。代碼如1-1。代碼1-1主頁文件book.htmlHelloHelloWorl
55、d!步驟三:在WEB-INF目錄下建立classes目錄和lib目錄以及web.xml文件。在web.xml文件中寫入根元素,見代碼1-2。代碼1-2配置文件web.xml步驟四:啟動Tomcat服務步驟五:通過http:/localhost:8080/book/book.html進行訪問,結果如圖1-7:圖1-7運行結果Servlet入門什么是Servletservlet可以被認為是服務器端的applet。servlet被Web服務器加載和執(zhí)行,就如同applet被瀏覽器加載和執(zhí)行一樣。servlet從客戶端(通過Web服務器)接收請求,執(zhí)行某種作業(yè),然后返回結果。使用servlet的基本流
56、程如下:客戶端(如Web瀏覽器)通過HTTP提出請求。Web服務器接收該請求并將其發(fā)給servlet。如果這個servlet尚未被加載Web服務器將把它加載到Java虛擬機并且執(zhí)行它。servlet將接收該HTTP請求并執(zhí)行某種處理。servlet將向Web服務器返回應答。Web服務器將從servlet收到的應答發(fā)送給客戶端。由于servlet是在服務器上執(zhí)行,通常與applet相關的安全性的問題并不需實現(xiàn)。servlet使相當數(shù)量的不可能或者至少是很難由applet實現(xiàn)的功能的實現(xiàn)成為可能。與現(xiàn)有系統(tǒng)通過CORBA,RMI,socket和本地(native)調用的通信就是其中的一些例子。另外
57、,一定要注意:Web瀏覽器并不直接和servlet通信,servlet是由Web服務器加載和執(zhí)行的。這意味著如果Web服務器有防火墻保護,那么servlet也將得到防火墻的保護。為什么要使用Servletservlet可以很好地替代公共網(wǎng)關接口(CommonGatewayInterface,CGI)腳本。通常CGI腳本是用Perl或者C語言編寫的,它們總是和特定的服務器平臺緊密相關。而servlet是用Java編寫的,所以它們一開始就是平臺無關的。這樣,Java編寫一次就可以在任何平臺運行(writeonce,runanywhere)的承諾就同樣可以在服務器上實現(xiàn)了。servlet還有一些CG
58、I腳本所不具備的獨特優(yōu)點:servlet是持久的servlet只需Web服務器加載一次,而且可以在不同請求之間保持服務(例如一次數(shù)據(jù)庫連接)。與之相反,CGI腳本是短暫的、瞬態(tài)的。每一次對CGI腳本的請求,都會使Web服務器加載并執(zhí)行該腳本。一旦這個CGI腳本運行結束,它就會被從內存中清除,然后將結果返回到客戶端。CGI腳本的每一次使用,都會造成程序初始化過程(例如連接數(shù)據(jù)庫)的重復執(zhí)行。servlet是與平臺無關的如前所述,servlet是用Java編寫的,它自然也繼承了Java的平臺無關性。servlet是可擴展的由于servlet是用Java編寫的,它就具備了Java所能帶來的所有優(yōu)點。
59、Java是健壯的、面向對象的編程語言,很容易擴展以適應需求。servlet自然也具備了這些特征。servlet是安全的。從外界調用一個servlet的惟一方法就是通過Web服務器。這提供了高水平的安全性保障,尤其是在Web服務器有防火墻保護的時候。servlet可以在多種多樣的客戶機上使用。由于servlet是用Java編寫的,所以可以很方便地在HTML中使用它們。編寫Servlet的準備工作JavaSoft(SunMicrosystem的Java軟件部)盡量地使servlet開發(fā)能夠既方便又快捷。JavaServlets開發(fā)工具包(JSDK)就是他們努力的結晶。該軟件可以從JavaSoft的
60、主頁()上下載。從1.2版以后,JSDK已經(jīng)成為Java開發(fā)工具包(JDK)的組成部分。在JSDK中包含了JavaServletAPI,JavaServletAPI是標準的Java擴展API。這意味著,JSDK不是Java核心框架的組成部分,因而可以由提供商將其作為附加包來提供。Java核心框架是所有使用Java的產(chǎn)品所必須包含的。在Javax.servlet包中提供了ServletAPI。運行Servlet的前提如前所述,運行servlet的全部需求就是一個支持ServletAPI的Web服務器。表1-1和1-2給出了第三方廠商提供的JavaWeb服務器的實現(xiàn)以及支持ServletAPI的附
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《人體內臟》課件
- 《庫管基本財務培訓》課件
- 2024虞姣離婚后財產(chǎn)分割及子女教育資助協(xié)議書3篇
- 2024溫州大學實驗室數(shù)據(jù)安全保密與應急處理合同3篇
- 2024版教育技術研發(fā)咨詢協(xié)議2篇
- 2024版基礎設施建設勞務合作分包協(xié)議版B版
- 《中東和非洲》課件
- 2024車輛租用標準協(xié)議條款版B版
- 火車站臺改造工程圍擋施工合同
- 汽車零部件合作合同
- 幼兒園大班主題課程《愛在我身邊》主題活動方案
- 廣西桂林市(2024年-2025年小學三年級語文)部編版期末考試(上學期)試卷(含答案)
- 煤炭行業(yè)智能化煤炭篩分與洗選方案
- 高級會計實務案例分析-第三章 企業(yè)全面預算管理
- 2024年數(shù)學四年級上冊線段、射線和直線基礎練習題(含答案)
- 2024至2030年中國防彈衣行業(yè)市場全景分析及投資策略研究報告
- 高三日語復習:高考日語語法總結
- 3.16謠言止于智者-正確處理同學關系班會解析
- 2024年美國氟苯尼考市場現(xiàn)狀及上下游分析報告
- 新教材北師大版數(shù)學一年級上冊教學反思全冊
- 電路分析(中國石油大學(華東))智慧樹知到期末考試答案章節(jié)答案2024年中國石油大學(華東)
評論
0/150
提交評論