Java Web程序設(shè)計(jì)與項(xiàng)目實(shí)踐_第1頁
Java Web程序設(shè)計(jì)與項(xiàng)目實(shí)踐_第2頁
Java Web程序設(shè)計(jì)與項(xiàng)目實(shí)踐_第3頁
Java Web程序設(shè)計(jì)與項(xiàng)目實(shí)踐_第4頁
Java Web程序設(shè)計(jì)與項(xiàng)目實(shí)踐_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

JavaWeb程序設(shè)計(jì)與項(xiàng)目實(shí)踐注:因內(nèi)容過長上傳受限制,本文檔只顯示部分內(nèi)容,完整版文檔請(qǐng)下載此文檔后留言謝謝。目錄\h第1章Java動(dòng)態(tài)網(wǎng)站開發(fā)概述\h1.1Web運(yùn)行機(jī)制\h1.1.1Web消息生命周期\h1.1.2URL簡介\h1.1.3HTTP協(xié)議\h1.1.4HTML靜態(tài)網(wǎng)頁語言\h1.2從靜態(tài)到動(dòng)態(tài)的轉(zhuǎn)變\h1.2.1開發(fā)靜態(tài)網(wǎng)站和應(yīng)用\h1.2.2用戶和瀏覽器的動(dòng)態(tài)交互\h1.2.3用戶和服務(wù)器的動(dòng)態(tài)交互\h1.2.4Web2.0時(shí)代的人機(jī)交互\h1.3使用Java開發(fā)動(dòng)態(tài)網(wǎng)站——J2EE技術(shù)\h1.3.1Java開發(fā)動(dòng)態(tài)網(wǎng)站的優(yōu)勢\h1.3.2J2EE架構(gòu)技術(shù)選擇\h1.4J2EE開發(fā)中的編程思想\h1.4.1面向?qū)ο缶幊蘚h1.4.2面向關(guān)系編程\h1.4.3面向切面編程\h1.5疑難解答\h第2章開發(fā)工具的選擇和開發(fā)環(huán)境搭建\h2.1開發(fā)工具的選擇\h2.1.1瀏覽器\h2.1.2Web服務(wù)器\h2.1.3數(shù)據(jù)庫管理系統(tǒng)\h2.2下載和安裝JDK6\h2.2.1下載JDK6\h2.2.2安裝JDK6\h2.2.3配置環(huán)境變量\h2.3下載和安裝Tomcat6.0服務(wù)器\h2.3.1下載Tomcat\h2.3.2安裝Tomcat\h2.3.3配置虛擬目錄\h2.4下載和安裝MySQL數(shù)據(jù)庫\h2.4.1下載MySQL數(shù)據(jù)庫\h2.4.2安裝MySQL\h2.5下載和安裝MyEclipse6.5集成開發(fā)工具\(yùn)h2.5.1下載MyEclipse6.5集成開發(fā)工具\(yùn)h2.5.2安裝MyEclipse\h2.6配置MyEclipse6.5集成開發(fā)工具\(yùn)h2.6.1集成配置JRE\h2.6.2集成配置Tomcat\h2.6.3集成配置MySQL\h2.7開發(fā)一個(gè)JavaWeb程序\h2.7.1使用MyEclipse新建Web項(xiàng)目\h2.7.2MyEclipse中新建JSP頁面\h2.7.3MyEclipse部署項(xiàng)目\h2.8疑難解答\h第3章應(yīng)用JSP技術(shù)開發(fā)動(dòng)態(tài)網(wǎng)站\h3.1開發(fā)一個(gè)JSP程序\h3.1.1編寫JSP代碼\h3.1.2JSP代碼解析\h3.1.3JSP運(yùn)行機(jī)制\h3.2JSP基本語法\h3.2.1注釋\h3.2.2JSP腳本元素\h3.2.3JSP指令元素\h3.3JSP動(dòng)作指令\h3.3.1頁面包含操作include\h3.3.2請(qǐng)求轉(zhuǎn)發(fā)操作forward\h3.3.3參數(shù)傳遞操作param\h3.4JSP主要內(nèi)置對(duì)象\h3.4.1request請(qǐng)求對(duì)象\h3.4.2response響應(yīng)對(duì)象\h3.4.3session會(huì)話對(duì)象\h3.4.4application應(yīng)用服務(wù)對(duì)象\h3.4.5pageContext頁面上下文對(duì)象\h3.5JSTL標(biāo)簽庫\h3.5.1EL表達(dá)式\h3.5.2核心標(biāo)簽庫\h3.5.3格式化標(biāo)簽庫\h3.5.4函數(shù)標(biāo)簽庫\h實(shí)訓(xùn)3.1——開發(fā)一個(gè)用戶登錄模塊\h3.6疑難解答\h3.7上機(jī)題\h第4章JavaBean在JSP程序中的應(yīng)用\h4.1JavaBean簡介\h4.2定義JavaBean\h4.3在JSP中使用JavaBean\h4.3.1調(diào)用JavaBean\h4.3.2設(shè)置JavaBean屬性\h4.3.3獲取JavaBean屬性\h4.4JavaBean范圍\h4.5移除JavaBean\h4.6使用JavaBean封裝JDBC操作\h4.6.1數(shù)據(jù)庫和數(shù)據(jù)庫表\h4.6.2公共數(shù)據(jù)庫訪問連接類的開發(fā)\h4.6.3DAO接口\h4.6.4DAO實(shí)現(xiàn)類\h4.6.5DAO工廠類\h實(shí)訓(xùn)4.1——用JSP+JavaBean開發(fā)購物車模塊\h4.7疑難解答\h4.8上機(jī)題\h第5章Servlet技術(shù)\h5.1什么是Servlet\h5.2Servlet開發(fā)\h5.2.1開發(fā)一個(gè)Servlet程序\h5.2.2Servlet生命周期\h5.2.3HttpServlet常用方法\h5.3Filter過濾器開發(fā)\h5.3.1過濾器簡介\h5.3.2實(shí)現(xiàn)一個(gè)過濾器\h5.3.3Filter生命周期\h5.3.4IP地址過濾器\h5.4Listener監(jiān)聽器開發(fā)\h5.4.1監(jiān)聽器簡介\h5.4.2Servlet上下文監(jiān)聽器\h5.4.3Http會(huì)話監(jiān)聽器和客戶端請(qǐng)求監(jiān)聽器\h實(shí)訓(xùn)5.1——顯示在線人員列表\h5.5疑難解答\h5.6上機(jī)題\h第6章AJAX+JSP+Servlet整合開發(fā)\h6.1AJAX簡介\h6.2傳統(tǒng)開發(fā)模式與AJAX開發(fā)模式\h6.2.1傳統(tǒng)Web開發(fā)模式\h6.2.2AJAX開發(fā)模式\h6.3AJAX核心技術(shù)\h6.3.1JavaScript腳本語言\h6.3.2XMLHttpRequest對(duì)象\h6.3.3DOM文檔對(duì)象模型\h6.3.4XML/JSON數(shù)據(jù)表示技術(shù)\h6.4AJAX開發(fā)過程\h6.4.1創(chuàng)建XMLHttpRequest對(duì)象\h6.4.2定義響應(yīng)事件處理函數(shù)\h6.4.3發(fā)送HTTP請(qǐng)求\h實(shí)訓(xùn)6.1——AJAX實(shí)現(xiàn)電子相冊(cè)\h6.5疑難解答\h6.6上機(jī)題\h第7章用Struts2編寫一個(gè)程序\h7.1Struts2框架\h7.1.1Model1架構(gòu)模式\h7.1.2Model2架構(gòu)模式\h7.1.3常用的MVC框架\h7.1.4Struts2框架簡介\h7.2搭建Struts2開發(fā)環(huán)境\h7.2.1下載并安裝Struts2框架\h7.2.2配置web.xml\h7.2.3配置struts.xml\h實(shí)訓(xùn)7.1——基于Struts2的用戶注冊(cè)模塊實(shí)現(xiàn)\h7.3疑難解答\h7.4上機(jī)題\h第8章Struts2類型轉(zhuǎn)換和輸入校驗(yàn)\h8.1Struts2類型轉(zhuǎn)換基礎(chǔ)\h8.1.1類型轉(zhuǎn)換的意義\h8.1.2內(nèi)建類型轉(zhuǎn)換器簡介\h8.1.3基本數(shù)據(jù)類型轉(zhuǎn)換器\h8.1.4基本數(shù)據(jù)類型的封裝類轉(zhuǎn)換器\h8.1.5數(shù)組類型轉(zhuǎn)換器\h8.1.6集合類型轉(zhuǎn)換器\h8.1.7日期類型轉(zhuǎn)換器\h8.2自定義類型轉(zhuǎn)換器\h8.2.1實(shí)現(xiàn)自定義類型轉(zhuǎn)換器\h8.2.2使用Struts2提供的StrutsTypeConverter\h8.2.3注冊(cè)局部類型轉(zhuǎn)換器\h8.2.4注冊(cè)全局類型轉(zhuǎn)換器\h8.2.5類型轉(zhuǎn)換執(zhí)行流程\h8.2.6類型轉(zhuǎn)換中錯(cuò)誤處理\h8.2.7輸出指定的錯(cuò)誤信息\h8.3Struts2輸入校驗(yàn)\h8.3.1輸入校驗(yàn)的重要性\h8.3.2通過實(shí)現(xiàn)validate方法完成輸入校驗(yàn)\h8.3.3保存表單提交信息\h8.3.4使用addFieldError添加錯(cuò)誤信息\h8.3.5Struts2輸入校驗(yàn)流程\h8.4Struts2校驗(yàn)框架\h8.4.1使用校驗(yàn)框架的好處\h8.4.2編寫校驗(yàn)規(guī)則文件\h8.4.3校驗(yàn)器配置風(fēng)格\h8.4.4內(nèi)建校驗(yàn)器注冊(cè)文件\h8.4.5常用的內(nèi)建校驗(yàn)器\h實(shí)訓(xùn)8.1——聯(lián)系人添加模塊的實(shí)現(xiàn)\h8.5疑難解答\h8.6上機(jī)題\h第9章Struts2攔截器\h9.1攔截器介紹以及實(shí)現(xiàn)原理\h9.1.1攔截器簡介\h9.1.2攔截器實(shí)現(xiàn)原理\h9.2自定義攔截器\h9.2.1通過Interceptor接口實(shí)現(xiàn)攔截器\h9.2.2通過AbstractInterceptor類實(shí)現(xiàn)攔截器\h9.2.3配置攔截器\h9.2.4使用攔截器\h9.2.5使用默認(rèn)攔截器\h9.3深入了解攔截器\h9.3.1為攔截器傳入?yún)?shù)\h9.3.2配置攔截器棧\h9.3.3覆蓋攔截器棧中指定攔截器的參數(shù)\h9.3.4攔截器執(zhí)行順序\h9.4Struts2內(nèi)建攔截器\h9.4.1內(nèi)建攔截器介紹\h9.4.2內(nèi)建攔截器的配置\h實(shí)訓(xùn)9.1——通過攔截器實(shí)現(xiàn)用戶權(quán)限控制\h9.5疑難解答\h9.6上機(jī)題\h第10章國際化和文件上傳\h10.1JSP頁面國際化\h10.1.1加載全局資源文件完成國際化\h10.1.2臨時(shí)指定資源文件完成國際化\h10.1.3為資源文件傳遞參數(shù)\h10.1.4資源文件加載順序\h10.2Action國際化\h10.2.1加載全局資源文件完成國際化\h10.2.2加載包范圍資源文件完成國際化\h10.2.3加載Action范圍資源文件完成國際化\h10.2.4資源文件加載順序\h實(shí)訓(xùn)10.1——實(shí)現(xiàn)用戶自行選擇語言環(huán)境站點(diǎn)\h10.3基于Struts2完成文件上傳\h10.3.1下載并安裝Common-FileUpload框架\h10.3.2配置上傳解析器\h10.3.3實(shí)現(xiàn)文件上傳控制器\h10.3.4完成文件上傳\h10.4文件上傳高級(jí)配置\h10.4.1動(dòng)態(tài)設(shè)置文件上傳目錄\h10.4.2限制上傳文件大小和類型\h10.4.3自定義上傳錯(cuò)誤提示信息\h實(shí)訓(xùn)10.2——多文件上傳\h10.5疑難解答\h10.6上機(jī)題\h第11章Struts2標(biāo)簽庫\h11.1Struts2標(biāo)簽庫概述\h11.1.1Struts2標(biāo)簽庫的組成\h11.1.2Struts2標(biāo)簽庫的使用\h11.2控制標(biāo)簽\h11.2.1if/elseif/else標(biāo)簽\h11.2.2iterator標(biāo)簽\h11.2.3append標(biāo)簽\h11.2.4merge標(biāo)簽\h11.2.5generator標(biāo)簽\h11.2.6subset標(biāo)簽\h11.2.7sort標(biāo)簽\h11.3數(shù)據(jù)標(biāo)簽\h11.3.1action標(biāo)簽\h11.3.2bean標(biāo)簽\h11.3.3date標(biāo)簽\h11.3.4debug標(biāo)簽\h11.3.5include標(biāo)簽\h11.3.6param標(biāo)簽\h11.3.7property標(biāo)簽\h11.3.8push標(biāo)簽\h11.3.9set標(biāo)簽\h11.3.10url標(biāo)簽\h11.4表單標(biāo)簽\h11.4.1簡單表單標(biāo)簽\h11.4.2checkboxlist標(biāo)簽\h11.4.3combobox標(biāo)簽\h11.4.4datetimepicker標(biāo)簽\h11.4.5doubleselect標(biāo)簽\h實(shí)訓(xùn)11.1——分頁顯示商品列表\h11.5疑難解答\h11.6上機(jī)題\h第12章編寫一個(gè)Hibernate程序\h12.1Hibernate概述\h12.1.1什么是ORM\h12.1.2為什么要使用ORM\h12.1.3使用Hibernate框架的優(yōu)勢\h12.2為項(xiàng)目添加Hibernate支持\h12.2.1下載和安裝Hibernate\h12.2.2MyEclipse對(duì)Hibernate3的支持\h12.3Hibernate開發(fā)入門\h12.3.1開發(fā)Hibernate程序的基本步驟\h12.3.2創(chuàng)建數(shù)據(jù)庫表\h12.3.3創(chuàng)建Hibernate配置文件\h12.3.4創(chuàng)建會(huì)話工廠類\h12.3.5創(chuàng)建實(shí)體類\h12.3.6創(chuàng)建對(duì)象關(guān)系映射文件\h12.3.7完成插入數(shù)據(jù)\h實(shí)訓(xùn)12.1——使用Hibernate查詢學(xué)生列表\h12.4疑難解答\h12.5上機(jī)題\h第13章Hibernate配置和會(huì)話\h13.1配置Hibernate\h13.1.1使用XML文件配置Hibernate\h13.1.2使用資源文件配置Hibernate\h13.1.3代碼動(dòng)態(tài)配置Hibernate\h13.2配置映射文件\h13.2.1<hibernate-mapping>元素\h13.2.2<class>元素\h13.2.3<id>元素\h13.2.4<property>元素\h13.2.5其他元素\h13.3使用Annotations配置映射\h13.3.1使用@Entity注釋實(shí)體類\h13.3.2使用@Table注釋實(shí)體類\h13.3.3使用@Id注釋實(shí)體類標(biāo)識(shí)\h13.3.4使用@GenerateValue注釋覆蓋標(biāo)識(shí)的默認(rèn)訪問策略\h13.3.5使用@GenericGenerator注釋生成標(biāo)識(shí)生成器\h13.3.6使用@Column注釋實(shí)體類非標(biāo)識(shí)屬性\h13.3.7自定義AnnotationSessionFactory類來獲得Session對(duì)象\h13.3.8測試Annotations注釋是否成功完成映射\h13.4會(huì)話(Session)的應(yīng)用\h13.4.1Hibernate對(duì)象狀態(tài)\h13.4.2使用save方法持久化對(duì)象\h13.4.3使用saveOrUpdate方法持久化對(duì)象\h13.4.4使用load方法裝載對(duì)象\h13.4.5使用get方法裝載對(duì)象\h13.4.6使用refresh方法刷新對(duì)象\h13.4.7使用setFlushMode方法設(shè)置更新模式\h13.4.8使用isDirty方法判斷數(shù)據(jù)是否一致\h13.4.9使用delete方法刪除記錄\h實(shí)訓(xùn)13.1——模擬商場VIP系統(tǒng)\h13.5疑難解答\h13.6上機(jī)題\h第14章Hibernate高級(jí)映射和數(shù)據(jù)檢索\h14.1關(guān)聯(lián)關(guān)系映射\h14.1.1多對(duì)一關(guān)系映射\h14.1.2基于多對(duì)一關(guān)系映射的演示\h14.1.3一對(duì)多關(guān)系映射\h14.1.4基于一對(duì)多關(guān)系映射的演示\h14.1.5一對(duì)一關(guān)系映射\h14.1.6基于一對(duì)一關(guān)系映射的演示\h14.2標(biāo)準(zhǔn)查詢API\h14.2.1查詢所有記錄\h14.2.2設(shè)置最大記錄數(shù)\h14.2.3按條件查詢\h14.2.4使用通配符完成模糊查詢\h14.2.5使用MatchMode完成模糊查詢\h14.2.6對(duì)查詢結(jié)果進(jìn)行排序\h14.3HQL基礎(chǔ)查詢\h14.3.1使用HQL查詢所有記錄\h14.3.2使用Select子句返回指定屬性信息\h14.3.3使用as關(guān)鍵字給實(shí)體類起一個(gè)別名\h14.3.4使用Where子句指定查詢條件\h14.3.5指定查詢參數(shù)來完成查詢\h14.3.6指定查詢起始位置和查詢最大記錄數(shù)\h14.4HQL高級(jí)查詢\h14.4.1使用HQL對(duì)查詢結(jié)果進(jìn)行排序\h14.4.2使用HQL對(duì)查詢結(jié)果進(jìn)行分組\h14.4.3使用HQL執(zhí)行數(shù)據(jù)庫內(nèi)置函數(shù)\h實(shí)訓(xùn)14.1——模擬人才市場查詢系統(tǒng)\h14.5疑難解答\h14.6上機(jī)題\h第15章編寫一個(gè)Spring程序\h15.1Spring概述\h15.1.1為什么使用Spring\h15.1.2Spring技術(shù)介紹\h15.2Spring開發(fā)環(huán)境的搭建\h15.2.1手動(dòng)搭建\h15.2.2使用MyEclipse自動(dòng)搭建\h15.3開發(fā)Spring的HelloWorld程序\h15.3.1開發(fā)Spring程序的步驟\h15.3.2編寫業(yè)務(wù)接口\h15.3.3編寫業(yè)務(wù)實(shí)現(xiàn)類\h15.3.4配置業(yè)務(wù)實(shí)現(xiàn)類\h15.3.5編寫客戶端程序進(jìn)行測試\h實(shí)訓(xùn)15.1——Spring在公司管理系統(tǒng)中的應(yīng)用\h15.4疑難解答\h15.5上機(jī)題\h第16章控制反轉(zhuǎn)\h16.1IoC容器\h16.1.1Bean工廠接口\h16.1.2實(shí)例化容器\h16.1.3多配置文件的使用\h16.1.4配置Bean\h16.1.5使用容器實(shí)例化Bean\h16.1.6容器常用方法\h16.2依賴注入\h16.2.1Setter方法注入\h16.2.2構(gòu)造函數(shù)注入\h16.2.3注入其他Bean\h16.2.4內(nèi)部Bean\h16.2.5注入集合\h16.2.6空字符串和null值的處理\h16.2.7依賴注入的簡寫形式\h16.2.8不完全依賴\h16.2.9自動(dòng)裝配\h16.3Bean作用域\h16.3.1Singleton作用域\h16.3.2Prototype作用域\h16.3.3Request作用域\h16.3.4Session作用域\h16.3.5globalsession作用域\h16.3.6自定義作用域\h實(shí)訓(xùn)16.1——依賴注入在圖書館查書模塊中的使用\h16.4疑難解答\h16.5上機(jī)題\h第17章面向切面編程\h17.1面向切面編程簡介\h17.1.1面向切面編程概念\h17.1.2面向切面編程的功能\h17.2使用注解方式進(jìn)行AOP開發(fā)\h17.2.1啟動(dòng)AspectJ的支持\h17.2.2聲明切面\h17.2.3聲明切入點(diǎn)\h17.2.4聲明通知\h實(shí)訓(xùn)17.1——使用注解對(duì)數(shù)據(jù)訪問層進(jìn)行管理\h17.3切入點(diǎn)\h17.3.1切入點(diǎn)指定者\(yùn)h17.3.2合并切入點(diǎn)\h17.3.3切入點(diǎn)表達(dá)式\h17.4通知\h17.4.1返回后通知\h17.4.2出錯(cuò)后通知\h17.4.3后通知\h17.4.4環(huán)繞通知\h17.4.5通知順序\h17.5使用配置方式進(jìn)行AOP開發(fā)\h17.5.1配置聲明切面\h17.5.2配置聲明切入點(diǎn)\h17.5.3配置聲明通知\h實(shí)訓(xùn)17.2——使用配置方式釋放數(shù)據(jù)訪問資源\h17.6面向切面編程API介紹\h17.6.1處理切入點(diǎn)\h17.6.2處理通知\h17.6.3使用AOP的工廠Bean\h17.7在Spring中進(jìn)行JDBC編程\h17.7.1Spring中的數(shù)據(jù)庫操作封裝類\h17.7.2數(shù)據(jù)源接口\h17.7.3執(zhí)行SQL語句\h17.7.4更新數(shù)據(jù)庫操作\h17.7.5查詢數(shù)據(jù)庫操作\h17.8疑難解答\h17.9上機(jī)題\h第18章框架技術(shù)整合開發(fā)\h18.1Struts2和Hibernate整合開發(fā)\h18.1.1整合策略\h18.1.2數(shù)據(jù)庫層開發(fā)\h18.1.3持久層開發(fā)\h18.1.3數(shù)據(jù)訪問層開發(fā)\h18.1.4業(yè)務(wù)邏輯層開發(fā)\h18.1.5完成書籍的錄入\h18.1.6完成所有圖書的顯示\h18.2Struts2和Spring整合開發(fā)\h18.2.1整合策略\h18.2.2安裝Spring插件完成整合\h18.2.3裝配數(shù)據(jù)訪問層\h18.2.4裝配業(yè)務(wù)邏輯層\h18.2.5裝配業(yè)務(wù)控制器\h18.3Hibernate和Spring整合開發(fā)\h18.3.1使用Spring管理數(shù)據(jù)源\h18.3.2使用Spring管理SessionFactory\h18.3.3使用HibernateTemplate類\h18.3.4使用HibernateDaoSupport類\h18.3.5使用編程式的事務(wù)管理\h18.3.6使用Spring管理事務(wù)管理器\h18.3.7為業(yè)務(wù)邏輯層注入事務(wù)管理器\h18.3.8使用TransactionTemplate進(jìn)行事務(wù)管理\h18.3.9使用聲明式的事務(wù)管理\h18.3.10使用TransactionProxyFactoryBean生成事務(wù)代理\h18.4疑難解答\h18.5上機(jī)題\h第19章論壇系統(tǒng)\h19.1系統(tǒng)分析\h19.1.1需求分析\h19.1.2功能分析\h19.2系統(tǒng)設(shè)計(jì)\h19.2.1繪制用例圖設(shè)計(jì)系統(tǒng)功能\h19.2.2繪制系統(tǒng)流程圖\h19.3數(shù)據(jù)庫分析與設(shè)計(jì)\h19.3.1數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)\h19.3.2創(chuàng)建數(shù)據(jù)庫及數(shù)據(jù)表\h19.4公共類設(shè)計(jì)\h19.4.1分頁信息類\h19.4.2分頁輔助類\h19.4.3分頁結(jié)果類\h19.4.4用戶實(shí)體類\h19.4.5欄目實(shí)體類\h19.4.6子欄目實(shí)體類\h19.4.7主題實(shí)體類\h19.4.8回復(fù)實(shí)體類\h19.5用戶管理模塊\h19.5.1新增用戶\h19.5.2瀏覽用戶\h19.5.3刪除用戶\h19.6欄目管理模塊\h19.6.1創(chuàng)建新欄目\h19.6.2查看所有欄目\h19.6.3刪除指定欄目\h19.7子欄目管理模塊\h19.7.1在欄目下創(chuàng)建子欄目\h19.7.2查詢欄目下所有子欄目\h19.7.3刪除指定子欄目\h19.8前臺(tái)功能模塊\h19.8.1指向論壇首頁\h19.8.2顯示子欄目中所有主題\h19.8.3發(fā)表新主題\h19.8.4瀏覽主題\h19.8.5對(duì)主題進(jìn)行回復(fù)\h第20章新聞發(fā)布系統(tǒng)\h20.1系統(tǒng)分析\h20.1.1需求分析\h20.1.2功能分析\h20.2系統(tǒng)設(shè)計(jì)\h20.2.1繪制用例圖設(shè)計(jì)系統(tǒng)功能\h20.2.2繪制系統(tǒng)流程圖\h20.3數(shù)據(jù)庫分析與設(shè)計(jì)\h20.3.1數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計(jì)\h20.3.2創(chuàng)建數(shù)據(jù)庫及數(shù)據(jù)表\h20.4公共類設(shè)計(jì)\h20.4.1用戶實(shí)體類\h20.4.2版面實(shí)體類\h20.4.3新聞實(shí)體類\h20.5系統(tǒng)用戶管理模塊\h20.6版面管理模塊\h20.6.1創(chuàng)建新版面\h20.6.2查看系統(tǒng)中所有版面\h20.6.3對(duì)已有版面進(jìn)行編輯\h20.6.4刪除指定版面\h20.7新聞發(fā)布管理模塊\h20.7.1發(fā)布新聞\h20.7.2瀏覽所有新聞\h20.7.3刪除指定新聞\h20.8前臺(tái)功能模塊\h20.8.1指向系統(tǒng)首頁\h20.8.2查看版面下所有新聞\h20.8.3閱讀指定新聞\h附錄贈(zèng)送項(xiàng)目案例\h項(xiàng)目01在線音樂網(wǎng)站\h01.1需求分析\h01.2功能分析\h01.3數(shù)據(jù)庫分析與設(shè)計(jì)\h01.4系統(tǒng)演示\h項(xiàng)目02商場VIP消費(fèi)查詢系統(tǒng)\h02.1需求分析\h02.2功能分析\h02.3數(shù)據(jù)庫分析與設(shè)計(jì)\h02.4系統(tǒng)演示\h項(xiàng)目03倉庫管理系統(tǒng)\h03.1需求分析\h03.2功能分析\h03.3數(shù)據(jù)庫分析與設(shè)計(jì)\h03.4系統(tǒng)演示\h項(xiàng)目04新聞發(fā)布系統(tǒng)\h04.1需求分析\h04.2功能分析\h04.3數(shù)據(jù)庫分析與設(shè)計(jì)\h04.4系統(tǒng)演示\h項(xiàng)目05個(gè)人理財(cái)管理系統(tǒng)\h05.1需求分析\h05.2功能分析\h05.3數(shù)據(jù)庫分析與設(shè)計(jì)\h05.4系統(tǒng)演示\h項(xiàng)目06圖書館管理系統(tǒng)\h06.1需求分析\h06.2功能分析\h06.3數(shù)據(jù)庫分析與設(shè)計(jì)\h06.4系統(tǒng)演示\h項(xiàng)目07學(xué)生信息管理系統(tǒng)\h07.1需求分析\h07.2功能分析\h07.3數(shù)據(jù)庫分析與設(shè)計(jì)\h07.4系統(tǒng)演示\h項(xiàng)目08航空訂票系統(tǒng)\h08.1需求分析\h08.2功能分析\h08.3數(shù)據(jù)庫分析與設(shè)計(jì)\h08.4系統(tǒng)演示\h項(xiàng)目09網(wǎng)上訂餐系統(tǒng)\h09.1需求分析\h09.2功能分析\h09.3數(shù)據(jù)庫分析與設(shè)計(jì)\h09.4系統(tǒng)演示\h項(xiàng)目010辦公自動(dòng)化系統(tǒng)\h010.1需求分析\h010.2功能分析\h010.3數(shù)據(jù)庫分析與設(shè)計(jì)\h010.4系統(tǒng)演示\h附錄CD頁第1章Java動(dòng)態(tài)網(wǎng)站開發(fā)概述Web發(fā)展至今已經(jīng)有了近15年的歷史,它的出現(xiàn)大大改變了人們的生活方式。人們通過它可以很方便地和自己遠(yuǎn)方的親友進(jìn)行聊天,一起游戲;還可以通過它看新聞、看電影、網(wǎng)上購物等。本章首先介紹Web的運(yùn)行機(jī)制,讓讀者在進(jìn)行Web開發(fā)前對(duì)Web有一個(gè)初步的認(rèn)識(shí)。然后介紹Web的發(fā)展史,重點(diǎn)講述從靜態(tài)網(wǎng)站到動(dòng)態(tài)網(wǎng)站的轉(zhuǎn)變。最后將介紹如果使用Java來開發(fā)動(dòng)態(tài)網(wǎng)站,包括J2EE架構(gòu)技術(shù)選擇、開發(fā)模型等。本章的學(xué)習(xí)重點(diǎn):◆Web消息生命周期◆HTML靜態(tài)網(wǎng)頁語言◆Web2.0應(yīng)用◆J2EE開發(fā)模型◆面向?qū)ο缶幊?.1Web運(yùn)行機(jī)制通常我們?cè)谠L問一個(gè)網(wǎng)站之前,首先要輸入網(wǎng)站的地址。例如我們要訪問新浪網(wǎng)時(shí),需要在瀏覽器的地址欄輸入/。當(dāng)輸入完成后,單擊“訪問”按鈕就能進(jìn)入新浪網(wǎng)。這到底是怎么實(shí)現(xiàn)的呢?下面就來介紹Web消息的生命周期,并簡單介紹Web開發(fā)的一些基礎(chǔ)知識(shí),包括URL、HTTP協(xié)議以及HTML靜態(tài)網(wǎng)頁開發(fā)語言。1.1.1Web消息生命周期當(dāng)我們輸入網(wǎng)址并單擊“訪問”按鈕后,Web消息的生命周期就開始了。而當(dāng)我們進(jìn)入到網(wǎng)站后,Web消息的生命周期就結(jié)束了。Web消息的生命周期如圖1-1所示。圖1-1Web消息的生命周期圖Web消息從開始到結(jié)束一共經(jīng)歷了如下5個(gè)步驟。(1)當(dāng)我們希望進(jìn)入一個(gè)網(wǎng)頁,或者其他網(wǎng)絡(luò)資源的時(shí)候。首先需要在瀏覽器地址欄輸入網(wǎng)頁的URL地址,或者通過超鏈接的方式鏈接到所需的網(wǎng)頁或網(wǎng)絡(luò)資源。(2)瀏覽器接受到用戶的輸入后,就去網(wǎng)站該URL地址所對(duì)應(yīng)的服務(wù)器查找資源。但是因?yàn)槲覀冚斎氲腢RL通常只包含服務(wù)器的域名地址,而不是IP地址。這時(shí)將通過域名服務(wù)器進(jìn)行解析,然后決定發(fā)送給哪個(gè)IP地址。(3)在得到IP地址后,就可以向該IP地址所在的服務(wù)器發(fā)送一個(gè)HTTP請(qǐng)求。(4)服務(wù)器在接受到請(qǐng)求后,根據(jù)請(qǐng)求內(nèi)容進(jìn)行查詢,最終將HTML、CSS以及其他文件,如圖片、鏈接等發(fā)送給客戶瀏覽器。(5)用戶瀏覽器將接受到的HTML、CSS等其他文件組織成一個(gè)網(wǎng)頁,最終呈現(xiàn)給用戶。1.1.2URL簡介URL的英文全稱為UniformResourceLocator,其中文譯名為統(tǒng)一資源定位符,它就是我們常指的網(wǎng)址。和每個(gè)人都擁有自己的獨(dú)一無二的身份證號(hào)碼一樣,網(wǎng)頁也需要有自己的“身份證號(hào)碼”,而這個(gè)身份證號(hào)碼就是URL。正是有了這樣一個(gè)唯一標(biāo)識(shí),我們?cè)谠L問新浪網(wǎng)時(shí)不會(huì)進(jìn)入到騰訊的網(wǎng)站。和身份證號(hào)碼一樣,URL地址一樣有自己的基本格式。URL由三部分組成,分別為協(xié)議類型、主機(jī)名和路徑及文件名,其一般格式如下:(1)protocol,用來指定協(xié)議類型,常用的協(xié)議有file、ftp、http以及https。(2)hostname,用來指定主機(jī)名,可以是服務(wù)器的域名或者IP地址。(3)port,用來指定端口號(hào),各種傳輸協(xié)議都有默認(rèn)的端口號(hào),比如http的默認(rèn)端口為80。如果輸入時(shí)省略,則使用默認(rèn)端口號(hào)。(4)path,用來指定路徑或者文件名,由零或多個(gè)“/”符號(hào)分隔的字符串組成。(5)parameters,用來指定特殊參數(shù),可以不指定。(6)query,用來指定查詢參數(shù),給一些動(dòng)態(tài)網(wǎng)頁傳遞參數(shù)。參數(shù)包含參數(shù)名和參數(shù)值兩部分組成,之間使用“=”分隔,如“page=1”。當(dāng)有多個(gè)參數(shù)時(shí),可以使用“&”進(jìn)行分隔,如“l(fā)ist=1&page=2”。(7)fragment,用來指定描點(diǎn),查找網(wǎng)頁中某一個(gè)位置。1.1.3HTTP協(xié)議前面我們已經(jīng)學(xué)習(xí)了URL的組成,那么HTTP如何進(jìn)行工作的呢?下面就來對(duì)其進(jìn)行深入了解。HTTP的英文全稱為HypertextTransferProtocol,其中文譯名為超文本傳輸協(xié)議,是客戶端瀏覽器和Web服務(wù)器之間的傳輸協(xié)議??蛻舳藶g覽器通過HTTP協(xié)議來向服務(wù)器發(fā)送請(qǐng)求,而服務(wù)器通過HTTP協(xié)議向用戶發(fā)送結(jié)果頁面,如圖1-2所示。圖1-2客戶端和服務(wù)器間通過HTTP協(xié)議進(jìn)行傳輸當(dāng)在客戶瀏覽器輸入一個(gè)URL地址,服務(wù)器返回一個(gè)頁面給瀏覽器,這個(gè)稱為一次HTTP操作。HTTP操作一般分為如下4個(gè)部分。(1)客戶端和服務(wù)器端建立連接,HTTP開始工作。(2)建立連接后,客戶端發(fā)送一個(gè)請(qǐng)求給服務(wù)器,請(qǐng)求內(nèi)容包括URL地址、協(xié)議版本號(hào)以及MIME信息。其中MIME信息中包括請(qǐng)求修飾符、客戶端信息等內(nèi)容。(3)服務(wù)器端接收到請(qǐng)求,對(duì)請(qǐng)求進(jìn)行處理后,返回響應(yīng)消息,包括狀態(tài)碼、協(xié)議版本號(hào)以及MIME信息。其中MIME信息中包括服務(wù)器端信息、實(shí)體信息等內(nèi)容。(4)客戶端接收到服務(wù)器端響應(yīng),在瀏覽器中顯示結(jié)果頁面,HTTP協(xié)議斷開,這時(shí)客戶端將和服務(wù)器端失去連接。作者心得:讀者如果想了解更多的HTTP協(xié)議的內(nèi)容,可以訪問“/zh-cn/HTTP”。1.1.4HTML靜態(tài)網(wǎng)頁語言前面我們介紹了服務(wù)器返回給客戶端瀏覽器的是HTML文件,那HTML到底是什么呢?它又是如何轉(zhuǎn)換成網(wǎng)頁,從而呈現(xiàn)給用戶的呢?HTML的英文全稱為HyperTextMark-upLanguage,其中文譯名為超文本標(biāo)記語言。HTML是構(gòu)成網(wǎng)頁文檔的最主要的語言,在HTML中包含了大量的標(biāo)記,不同的標(biāo)記用來顯示不同的內(nèi)容。HTML包含頭部和主體兩個(gè)部分,其中頭部用來描述網(wǎng)頁,如網(wǎng)頁的開發(fā)者、關(guān)鍵字等信息,這些信息不會(huì)顯示在瀏覽器窗口中;主體部分是網(wǎng)頁的主要部分,主體部分中的代碼將被瀏覽器解析并顯示在瀏覽器窗口中。下面來開發(fā)第一個(gè)HTML代碼,首先需要新建一個(gè)文本文件,設(shè)置其擴(kuò)展名為“.htm”或者“.html”。打開該文件,在文件中輸入如下代碼:編寫完成后,將這個(gè)文件保存為“firstPage.html”。使用IE瀏覽器打開該網(wǎng)頁,這時(shí)將在瀏覽器窗口中顯示該網(wǎng)頁的內(nèi)容,如圖1-3所示。圖1-3第一個(gè)HTML頁面從圖1-3可以看出,瀏覽器窗口的標(biāo)題被設(shè)置成了“我的第一個(gè)網(wǎng)頁”。在瀏覽器窗口中顯示“歡迎光臨本站!”的加粗文本。作者心得:讀者如果希望學(xué)習(xí)HTML的更多內(nèi)容,可以訪問“/”。1.2從靜態(tài)到動(dòng)態(tài)的轉(zhuǎn)變網(wǎng)站在最開始都是使用靜態(tài)頁面來進(jìn)行開發(fā)的,不過隨時(shí)時(shí)間的發(fā)展,技術(shù)的不斷更新,動(dòng)態(tài)網(wǎng)站完全取代了靜態(tài)網(wǎng)站。而隨著Web2.0的誕生,更是將Web應(yīng)用推向了一個(gè)更高的高度。下面就讓我們一起來回顧一下Web開發(fā)技術(shù)的發(fā)展歷程。1.2.1開發(fā)靜態(tài)網(wǎng)站和應(yīng)用靜態(tài)網(wǎng)站就是指整個(gè)網(wǎng)站全部由HTML格式文件組成的網(wǎng)站。在靜態(tài)網(wǎng)站中僅僅能夠表現(xiàn)出一些很少的動(dòng)態(tài)效果,例如圖片、Flash動(dòng)畫、滾動(dòng)屏幕等。如圖1-4所示的新浪首頁,就是一個(gè)典型的靜態(tài)網(wǎng)頁。圖1-4靜態(tài)網(wǎng)站所有的靜態(tài)網(wǎng)頁都有如下4個(gè)特點(diǎn):(1)每個(gè)靜態(tài)頁面都有自己的獨(dú)一無二的URL地址,文件名后綴一般為“.html”或者“.htm”;(2)每個(gè)靜態(tài)頁面的內(nèi)容都是固定的,不能動(dòng)態(tài)修改,如要修改只能修改頁面文件代碼;(3)整個(gè)靜態(tài)網(wǎng)站都不需要使用到數(shù)據(jù)庫,所有的數(shù)據(jù)都要人工來進(jìn)行錄入和維護(hù);(4)由于不需要使用數(shù)據(jù)庫來查詢數(shù)據(jù),所有靜態(tài)頁面能夠很快地被訪問。而且因?yàn)殪o態(tài)頁面的內(nèi)容非常穩(wěn)定,所以很容易被搜索引擎收錄。作者心得:目前整個(gè)Web網(wǎng)上已經(jīng)很難找到純靜態(tài)網(wǎng)站了,不過目前很多網(wǎng)站都在使用靜態(tài)化網(wǎng)頁技術(shù)。即通過程序?qū)?dòng)態(tài)代碼生成一個(gè)一個(gè)的HTML頁面。這樣,能夠提高網(wǎng)站的訪問速度和有利于網(wǎng)站被搜索引擎收錄。1.2.2用戶和瀏覽器的動(dòng)態(tài)交互隨著Web技術(shù)的發(fā)展,簡單的靜態(tài)頁面已經(jīng)無法滿足人們的需求。JavaScript的出現(xiàn)給網(wǎng)站開發(fā)注入了新鮮的“血液”,網(wǎng)站內(nèi)容變得越來越豐富。浮動(dòng)的窗口、滾動(dòng)導(dǎo)航菜單、樹型目錄菜單、動(dòng)態(tài)校驗(yàn)表單等,應(yīng)用在越來越多的網(wǎng)站開發(fā)中,開啟了用戶和瀏覽器動(dòng)態(tài)交互的新時(shí)代。當(dāng)我們注冊(cè)網(wǎng)易郵箱時(shí),JavaScript就能根據(jù)我們輸入的不同信息給出不同的提示,如圖1-5所示。圖1-5動(dòng)態(tài)校驗(yàn)表單當(dāng)我們?cè)谟脩裘谋究蛑休斎搿?1”時(shí),在右側(cè)的提示欄中將顯示“用戶名不能以數(shù)字開頭”的提示信息。而當(dāng)我們輸入“aa”時(shí),將顯示“合法長度為6~18個(gè)字符”的提示信息。這就是一種典型的用戶和瀏覽器之間的動(dòng)態(tài)交互。1.2.3用戶和服務(wù)器的動(dòng)態(tài)交互Web技術(shù)的發(fā)展永遠(yuǎn)都比人們的想象要快,當(dāng)人們還在習(xí)慣從服務(wù)器查找網(wǎng)絡(luò)資源時(shí),一種更高級(jí)的網(wǎng)站開發(fā)技術(shù)正慢慢地在互聯(lián)網(wǎng)中“蔓延”,那就是動(dòng)態(tài)網(wǎng)頁開發(fā)。這里所指的動(dòng)態(tài)與網(wǎng)頁中動(dòng)態(tài)的圖片沒有任何關(guān)系,而是指能夠按用戶的請(qǐng)求,動(dòng)態(tài)地生成靜態(tài)頁面的一種網(wǎng)頁開發(fā)技術(shù)。動(dòng)態(tài)網(wǎng)站實(shí)現(xiàn)的是用戶和服務(wù)器的動(dòng)態(tài)交互,例如我們要在當(dāng)當(dāng)網(wǎng)購買書籍時(shí),可以在“搜索商品”欄中輸入要查找的書籍,如“Java”,單擊“搜索”按鈕后,頁面將顯示所有的Java書籍,如圖1-6所示。圖1-6搜索Java書籍如果輸入“JavaWeb”,單擊“搜索”按鈕后,頁面將顯示所有的JavaWeb書籍,如圖1-7所示。圖1-7搜索JavaWeb書籍從上可以看出,動(dòng)態(tài)網(wǎng)站能夠根據(jù)用戶不同的請(qǐng)求,生成不同的靜態(tài)頁面,從而讓用戶看到不同的網(wǎng)頁內(nèi)容。1.2.4Web2.0時(shí)代的人機(jī)交互Web2.0中特具代表性的技術(shù)就是AJAX,通過AJAX能夠給用戶帶來更好的體驗(yàn)。例如,使用百度搜索時(shí),當(dāng)輸入“J”時(shí),將出現(xiàn)一個(gè)列表框顯示所有與“J”有關(guān)的搜索詞匯,如圖1-8所示。圖1-8百度搜索這樣,如果用戶要搜索“Java”,只要搜索“J”就能找到自己所要查找的內(nèi)容。AJAX還有一個(gè)非常大的特點(diǎn),就是無刷新頁面,這樣能夠給用戶提供連續(xù)的體驗(yàn),而無須長時(shí)間等待。例如,谷歌地圖搜索就是一個(gè)非常好的AJAX應(yīng)用,如圖1-9所示。圖1-9谷歌地圖假如用戶要查看北京市的地圖,只需要雙擊地圖上的北京市,就能打開北京市的地圖。整個(gè)頁面是不會(huì)進(jìn)行刷新的,刷新的僅僅是用來顯示地圖的圖片。1.3使用Java開發(fā)動(dòng)態(tài)網(wǎng)站——J2EE技術(shù)動(dòng)態(tài)網(wǎng)頁是指在服務(wù)器端運(yùn)行的,能夠根據(jù)不同的時(shí)間、不同的請(qǐng)求內(nèi)容返回不同內(nèi)容的頁面。通過動(dòng)態(tài)網(wǎng)頁技術(shù)開發(fā)的網(wǎng)站可以實(shí)現(xiàn)更多的功能,如網(wǎng)站注冊(cè)、網(wǎng)站登錄等。常用的動(dòng)態(tài)網(wǎng)頁開發(fā)技術(shù)有ASP、PHP、J2EE、ASP.NET等。本節(jié)重點(diǎn)介紹如何使用Java技術(shù)來開發(fā)動(dòng)態(tài)網(wǎng)頁,也就是我們常說的J2EE技術(shù)。1.3.1Java開發(fā)動(dòng)態(tài)網(wǎng)站的優(yōu)勢目前,Java平臺(tái)一共有3個(gè)版本,分別是用于小型設(shè)備嵌入式開發(fā)的J2ME版本、用于桌面應(yīng)用開發(fā)的J2SE版本和用于創(chuàng)建服務(wù)器端應(yīng)用程序的J2EE版本。其中J2EE是架于J2SE版本之上的,在學(xué)習(xí)J2EE之前,讀者必須對(duì)J2SE的相關(guān)知識(shí)進(jìn)行系統(tǒng)學(xué)習(xí)。J2EE是一種利用Java平臺(tái)來簡化企業(yè)解決方案的開發(fā)、部署以及管理等的系統(tǒng)結(jié)構(gòu)。通過J2EE來構(gòu)建動(dòng)態(tài)網(wǎng)站,具有如下幾點(diǎn)優(yōu)勢。(1)代碼移植性高。使用J2EE編寫的代碼具有“一次編寫,到處運(yùn)行”的特點(diǎn)。如在Window操作系統(tǒng)下編寫的代碼,能直接應(yīng)用到Linux平臺(tái)中,而無須修改代碼。(2)多平臺(tái)的支持。目前幾乎所有的操作系統(tǒng)都支持J2EE。(3)強(qiáng)大的可伸縮性。使用J2EE開發(fā)的動(dòng)態(tài)網(wǎng)站可被部署到一個(gè)擁有多個(gè)處理器的大型機(jī)系統(tǒng)上,同樣也可以部署到一臺(tái)個(gè)人電腦上。(4)強(qiáng)大的開發(fā)工具支持。開發(fā)J2EE應(yīng)用可以使用許多的開發(fā)工具,如Eclipse、NetBeans。這些開發(fā)工具都可以免費(fèi)下載到,并且可以在多個(gè)操作系統(tǒng)下使用。(5)高效的開發(fā)。J2EE允許將一些通用的代碼交給中間件服務(wù)商來完成,這樣開發(fā)人員可以集中精力來實(shí)現(xiàn)商業(yè)邏輯,從而大大地縮短了開發(fā)時(shí)間。正是因?yàn)槭褂肑2EE開發(fā)有如此多的優(yōu)勢,所以目前非常多的網(wǎng)站,尤其是企業(yè)級(jí)的大型項(xiàng)目都是用它來完成站點(diǎn)的構(gòu)建。1.3.2J2EE架構(gòu)技術(shù)選擇J2EE包含了多種核心技術(shù),這些技術(shù)是相互作用、互為補(bǔ)充的。通過這些技術(shù)的整合能夠搭建出一個(gè)完善的企業(yè)級(jí)Web應(yīng)用。下面就來對(duì)一些常用的技術(shù)進(jìn)行簡單的描述,并介紹該技術(shù)的作用。(1)JSP。是一種動(dòng)態(tài)頁面開發(fā)技術(shù),通過在傳統(tǒng)的HTML頁面中插入JSP腳本代碼,就可以構(gòu)成JSP頁面。JSP技術(shù)一般應(yīng)用于顯示頁面,通過JSP腳本代碼生成靜態(tài)頁面并最終發(fā)送給用戶進(jìn)行顯示。(2)JavaBean。JavaBean是為Java語言設(shè)計(jì)的軟件組件模型,具有可重復(fù)使用和跨平臺(tái)的特點(diǎn)。可以通過JavaBean來封裝業(yè)務(wù)邏輯,進(jìn)行數(shù)據(jù)庫操作等,從而很好地實(shí)現(xiàn)業(yè)務(wù)邏輯和前后臺(tái)程序的分離。(3)JDBC。是一種用于執(zhí)行SQL語句的JavaAPI,通過它可以訪問多種關(guān)系型數(shù)據(jù)庫。(4)Servlet。是一種運(yùn)行于服務(wù)器端的Java應(yīng)用程序,通過它可以完成數(shù)據(jù)的交互,應(yīng)客戶請(qǐng)求,還可以用來生成動(dòng)態(tài)的Web頁面。Servlet一般作為程序的后臺(tái),用來接收用戶的請(qǐng)求,并調(diào)用相應(yīng)的業(yè)務(wù)邏輯代碼,最終決定調(diào)轉(zhuǎn)到哪個(gè)頁面。(5)Struts2。是一種輕量級(jí)的MVC框架,通過Struts2來進(jìn)行開發(fā),可以大大減少開發(fā)時(shí)間,提高開發(fā)效率,并降低后期維護(hù)時(shí)間和精力。(6)Hibernate。是一種輕量級(jí)的持久層框架,通過它能夠使開發(fā)人員從繁瑣的SQL語句和復(fù)雜的JDBC中解脫出來。(7)Spring。是一種輕量級(jí)的框架,通過它可以非侵入式地為組件注入屬性。通過Spring框架,可以大大降低系統(tǒng)各層的耦合度,還可以用來整合Struts2和Hibernate,從而簡化系統(tǒng)的開發(fā)。作者心得:本書將會(huì)介紹到上面所列的所有技術(shù),筆者建議初學(xué)者從上之下地進(jìn)行學(xué)習(xí)。1.4J2EE開發(fā)中的編程思想在J2EE體系開發(fā)中將用到許多編程思想,如面向?qū)ο缶幊獭⒚嫦蚯忻婢幊?。編程思想的?yīng)用都是跟特點(diǎn)的技術(shù)有關(guān),因?yàn)镴2EE是基于J2SE的,而J2SE最重要的思想就是面向?qū)ο缶幊?,所以在J2EE開發(fā)中也大量應(yīng)用了面向?qū)ο缶幊趟枷搿D壳爸髁鞯臄?shù)據(jù)庫都是關(guān)系型數(shù)據(jù)庫,所以在操作數(shù)據(jù)庫時(shí),需要使用面向關(guān)系編程思想。在Struts2和Spring兩個(gè)框架中,都大量運(yùn)用了攔截功能,這時(shí)就需要對(duì)面向切面編程思想有所了解。1.4.1面向?qū)ο缶幊堂嫦驅(qū)ο缶幊逃址Q為面向?qū)ο蟪绦蛟O(shè)計(jì),起源于20世紀(jì)60年代的Simula語言,發(fā)展至今已經(jīng)有了近40年的歷史。目前主流的編程語言都是面向?qū)ο蟮?,比如C++、Java、C#以及Ruby。面向?qū)ο笾凶钪匾膬蓚€(gè)概念就是類和對(duì)象,其中對(duì)象的創(chuàng)建是以類為基礎(chǔ)的,類是對(duì)象的模板,而對(duì)象是根據(jù)類創(chuàng)建起來的,對(duì)象是類的實(shí)例。那么到底什么是對(duì)象呢?當(dāng)一個(gè)物品,具有屬性和行為時(shí),那該物品就是一個(gè)程序中的對(duì)象。其中屬性是指對(duì)象有哪些形態(tài),行為是指對(duì)象具有什么功能。我們以一個(gè)叫張三的人為例,年齡、性別、身高等就可以作為他的屬性,通過這些屬性就可以表示這個(gè)人的形態(tài)。而人可以吃飯、可以學(xué)習(xí),這些都是人的行為。通過人的行為,就可以來完成特定功能。這時(shí)我們就可以說這個(gè)人是一個(gè)對(duì)象,如圖1-10所示?,F(xiàn)實(shí)生活中很多東西都可以被看做對(duì)象,例如桌子、電腦等。圖1-10“張三”對(duì)象類是對(duì)象的模板,我們通過類來創(chuàng)建對(duì)象。例如,對(duì)于所有的人的對(duì)象來說,他們都具有姓名、年齡、性別等屬性,我們就可以定義一個(gè)具有這么多屬性的類,然后通過這個(gè)類來創(chuàng)建對(duì)象。當(dāng)創(chuàng)建張三這個(gè)對(duì)象時(shí),我們就可以指定他的姓名是“張三”,年齡是“23”;當(dāng)創(chuàng)建李四對(duì)象時(shí),就可以指定他的性名為“李四”,年齡為“30”,如圖1-11所示。圖1-11類和對(duì)象作者心得:本書將大量運(yùn)用面向?qū)ο缶幊谭矫娴闹R(shí),如果讀者對(duì)這方面不熟悉,建議先學(xué)習(xí)J2SE有關(guān)基礎(chǔ)知識(shí)。1.4.2面向關(guān)系編程目前主流的數(shù)據(jù)庫都是關(guān)系型數(shù)據(jù)庫,它通常使用行和列的形式來存儲(chǔ)數(shù)據(jù)。在關(guān)系型數(shù)據(jù)庫中,將一些復(fù)雜的數(shù)據(jù)結(jié)構(gòu)歸結(jié)為簡單的二元關(guān)系,并以二維表格形式來保存數(shù)據(jù),如圖1-12所示。圖1-12數(shù)據(jù)庫表表格第1行為表頭部分,用來指定數(shù)據(jù)名稱,如姓名、性別等。表格第2行至第5行為表格主體部分,用來指定具體的數(shù)據(jù)。在數(shù)據(jù)庫管理系統(tǒng)中,要?jiǎng)?chuàng)建數(shù)據(jù)庫表,首先必須執(zhí)行數(shù)據(jù)庫表創(chuàng)建SQL語句。我們可以將創(chuàng)建SQL看成是面向關(guān)系編程。例如,我們要?jiǎng)?chuàng)建一個(gè)Person表,該表包含姓名、性別、年齡身高4個(gè)字段,這時(shí)就需要編寫如下的SQL語句:1.4.3面向切面編程面向切面編程的英文名稱為AspectOrientedProgramming,簡稱為AOP,是目前非常流行和熱門的一個(gè)編程技術(shù)。面向切面編程針對(duì)業(yè)務(wù)處理過程中的切面進(jìn)行提取,面對(duì)的是處理過程中的某個(gè)步驟或者階段,從而達(dá)到邏輯過程中各部分之間低耦合的隔離效果。下面以一個(gè)生活中的例子來說明面向切面編程的作用。假如我們現(xiàn)在要去銀行取錢,在我們進(jìn)入銀行之前,銀行的門將自動(dòng)打開;而當(dāng)我們進(jìn)入之后,銀行的門將自動(dòng)關(guān)閉。這時(shí)就可以將人進(jìn)入銀行這個(gè)動(dòng)作看成是一個(gè)切面,而門自動(dòng)打開和自動(dòng)關(guān)閉,則可以看成是面向切面編程的操作。假如我們以常規(guī)的面向?qū)ο缶幊趟枷雭砜创@個(gè)問題,那么人在進(jìn)入到銀行之前,首先需要調(diào)用門的開啟方法,從而將門打開。同樣當(dāng)人進(jìn)入銀行以后,又需要調(diào)用門的關(guān)閉方法來將門關(guān)閉。這樣做就非常繁瑣了,而且人這個(gè)類和門這個(gè)類的行為嚴(yán)重耦合。那么怎樣才能將人進(jìn)入銀行的行為和開門關(guān)門的行為分離開呢?這時(shí)我們就需要應(yīng)用到面向切面編程了,通過將進(jìn)入銀行這個(gè)動(dòng)作看成是一個(gè)切面,并使用動(dòng)態(tài)代理類,來攔擊人進(jìn)入銀行這個(gè)動(dòng)作。同時(shí)在這個(gè)動(dòng)作的前后添加門的相應(yīng)方法來完成。這樣在人進(jìn)入銀行的前后,就能自動(dòng)調(diào)用門的開啟方法和關(guān)閉方法了。圖1-13面向切面編程作者心得:在Struts2和Spring兩個(gè)框架中大量運(yùn)用了面向切面編程方面的知識(shí),所以將對(duì)面向切面編程的詳細(xì)講解,放在后面的章節(jié)中進(jìn)行。1.5疑難解答(1)什么是域名解析?域名解析有什么作用?答:域名解析就是指把域名指向網(wǎng)站空間的IP地址,使得人們可以通過域名來訪問網(wǎng)站的一種服務(wù)。域名解析還可以叫域名指向、域名配置或者反向IP登記等。通過域名解析能將包含字母、數(shù)字組成的網(wǎng)址如,解析成32位的IP地址,如16。通過域名解析能夠?qū)⑷菀鬃屓擞涀〉木W(wǎng)址,轉(zhuǎn)換成服務(wù)器的實(shí)際IP地址,從而實(shí)現(xiàn)網(wǎng)站的訪問。(2)如何通過域名來找到這個(gè)網(wǎng)站的IP地址?答:可以通過Windows系統(tǒng)的PING命令來獲得指定網(wǎng)站域名的IP地址。具體步驟如下:選擇“開始”|“運(yùn)行”菜單,在“運(yùn)行”對(duì)話框中輸入“cmd”命令,將打開一個(gè)控制臺(tái)程序。在控制臺(tái)中就可以執(zhí)行PING命令,如要查詢雅虎中國的IP地址,則只需要輸入“ping”。輸入完成后,按下“Enter”鍵即可執(zhí)行該命令,這時(shí)將在控制臺(tái)中輸出雅虎中國的IP地址,如圖1-14所示。圖1-14執(zhí)行PING命令(3)域名、IP地址和URL三者有何區(qū)別?答:IP地址是服務(wù)器的真實(shí)地址,如“”。域名是一組和IP地址相對(duì)應(yīng)的容易記憶的一串字符,如。URL是所有網(wǎng)頁的唯一標(biāo)識(shí),在URL中必須指定主機(jī)名信息,這時(shí)可以使用IP地址,如“/default.html”,也可以使用域名,如“/index.html”。(4)HTTP協(xié)議同TCP/IP協(xié)議有什么不同,他們之間有關(guān)系嗎?答:TCP/IP協(xié)議是一種底層數(shù)據(jù)通信協(xié)議,定義了數(shù)據(jù)傳輸和連接方式的規(guī)范。該協(xié)議一共包含4層,從下至上分別是網(wǎng)絡(luò)接口層、互聯(lián)網(wǎng)層、傳輸層和應(yīng)用層。HTTP協(xié)議是TCP/IP中的一種應(yīng)用層協(xié)議,定義了傳輸數(shù)據(jù)內(nèi)容的規(guī)范。除了HTTP協(xié)議,還有一些常見的應(yīng)用層協(xié)議,如郵件協(xié)議SMTP、POP3、FTP等。(5)開發(fā)靜態(tài)頁面,除了使用HTML,還需要什么其他網(wǎng)頁開發(fā)技術(shù)嗎?答:常用的靜態(tài)頁面開發(fā)技術(shù)有HTML、CSS以及JavaScript。其中HTML用來組織網(wǎng)頁的文檔結(jié)構(gòu),它是整個(gè)網(wǎng)頁的“骨架”;CSS用來控制網(wǎng)頁中元素的顯示效果,它是整個(gè)網(wǎng)頁的“外衣”;JavaScript是一種客戶端腳本語言,提供了用戶和瀏覽器交互的能力,它是整個(gè)網(wǎng)頁的“裝飾”。一個(gè)完整的網(wǎng)頁一般都包含這3種網(wǎng)頁開發(fā)技術(shù),這也是目前最流行的組合方式。(6)除了記事本之外,有沒有比較好的HTML代碼編輯器?答:目前有很多的HTML代碼編輯器,如EditPlus、UltraEdit,這些編輯器都具有良好的語法特色功能。還有一些可視化編輯器,如Dreamweaver、FrontPage,這些編輯器提供了可視化的環(huán)境,使得開發(fā)人員無須書寫HTML代碼就能編寫網(wǎng)頁。(7)請(qǐng)問擴(kuò)展名為“.htm”和“.html”的網(wǎng)頁文件有什么區(qū)別?答:沒有任何區(qū)別,只是早期的一些操作系統(tǒng)無法識(shí)別到4位的文件名,所以才使用“.htm”作為網(wǎng)頁文件的文件名。(8)動(dòng)態(tài)網(wǎng)頁是不是一定比靜態(tài)網(wǎng)頁好?答:不一定,動(dòng)態(tài)網(wǎng)頁雖然提供了用戶和服務(wù)器的動(dòng)態(tài)交互,但是其訪問速度比靜態(tài)網(wǎng)頁要慢很多。使用動(dòng)態(tài)網(wǎng)頁還是靜態(tài)網(wǎng)頁,是根據(jù)具體的應(yīng)用來決定的。例如一個(gè)房地產(chǎn)網(wǎng)站,主要是展示戶型圖,這時(shí)候就可以使用靜態(tài)網(wǎng)頁,因?yàn)樵谠擁撁嬷兄恍枰蜷_一個(gè)戶型圖,并不需要進(jìn)行任何動(dòng)態(tài)交互。(9)一個(gè)項(xiàng)目可以同時(shí)使用J2EE和ASP.NET兩種技術(shù)開發(fā)嗎?答:可以的,可以通過WebService來實(shí)現(xiàn),也可以通過ColdFusion技術(shù)來實(shí)現(xiàn)。(10)既然Hibernate能夠完成所有的數(shù)據(jù)庫操作,而且沒有JDBC那么繁瑣,那么我還有必要學(xué)習(xí)JDBC嗎?答:在學(xué)習(xí)Hibernate之前是需要學(xué)習(xí)JDBC的,因?yàn)樵贖ibernate中完成數(shù)據(jù)庫操作也是通過JDBC來實(shí)現(xiàn)的,只不過在其上進(jìn)行了一系列封裝。JDBC是Java操作數(shù)據(jù)庫的底層操作,就相當(dāng)于房子的“地基”,沒有地基的房子是經(jīng)受不起風(fēng)吹雨打的。第2章開發(fā)工具的選擇和開發(fā)環(huán)境搭建古人有云,工欲善其事,必先利其器。程序開發(fā)也是如此,要想做出好的項(xiàng)目,也得選擇好的開發(fā)工具。要想做出一個(gè)完整的Web項(xiàng)目,有3個(gè)開發(fā)工具是必不可少的。一個(gè)是瀏覽器,一個(gè)是Web服務(wù)器,另外一個(gè)是數(shù)據(jù)庫系統(tǒng)。每個(gè)開發(fā)工具都有許多不同的產(chǎn)品,如瀏覽器有微軟的IE,有Mozilla的Firefox,等等。本章將選出一些主流的產(chǎn)品來進(jìn)行介紹和說明。進(jìn)行JavaWeb開發(fā)還有一個(gè)非常重要的開發(fā)工具,那就是集成開發(fā)環(huán)境,本章將介紹其中一個(gè)非常流行的產(chǎn)品,那就是MyEclipse6.5。本章的學(xué)習(xí)重點(diǎn):◆安裝JDK并配置環(huán)境變量◆安裝Tomcat并配置虛擬目錄◆安裝MyEclipse6.5集成開發(fā)工具◆使用MyEclipse進(jìn)行開發(fā)2.1開發(fā)工具的選擇隨時(shí)技術(shù)的發(fā)展和完善,各軟件商提供了非常多的開發(fā)工具,使得使用者有了很大的選擇余地。但是由于各開發(fā)工具的差異一般都比較大,而且對(duì)于使用者的要求也不同。這時(shí)擺在我們面前的一個(gè)問題是,如何選擇得心應(yīng)手的開發(fā)工具。2.1.1瀏覽器瀏覽器是用來瀏覽網(wǎng)頁、顯示HTML文件內(nèi)容的一款軟件。如果我們要查看網(wǎng)頁中的內(nèi)容,就必須使用一款瀏覽器。目前流行的瀏覽器有InternetExplorer、Firefox、Safari、Opera及Chrome等。InternetExplorer瀏覽器(IE)是由微軟公司開發(fā)并發(fā)布的,它是目前全世界使用最廣泛的瀏覽器。本書所有案例在沒有特別聲明的情況下,都將使用InternetExplorer瀏覽器來進(jìn)行演示和測試。Firefox瀏覽器是由Mozilla基金會(huì)與開源團(tuán)體共同開發(fā)的,目前市場占有率超過20%,僅次于IE瀏覽器。Firefox瀏覽器有許多好用的插件,能方便進(jìn)行開發(fā)調(diào)試,在后面的章節(jié)中將介紹如何使用Firefox瀏覽器來調(diào)試AJAX程序。其他幾種瀏覽器雖然創(chuàng)意非常新穎,并且也有自己的一些新功能,但是由于各種原因,并不能成為主流的瀏覽器。讀者如果感興趣,可以到其相應(yīng)的官方網(wǎng)站下載并使用。作者心得:InternetExplorer瀏覽器是目前國內(nèi)使用最多和最廣泛的瀏覽器,所以我們創(chuàng)建的Web項(xiàng)目都應(yīng)該能在其上面運(yùn)行通過。2.1.2Web服務(wù)器Web服務(wù)器又稱為WWW服務(wù)器,主要用來提供網(wǎng)上信息瀏覽服務(wù)。Web服務(wù)器能接受用戶發(fā)送的HTTP請(qǐng)求,在經(jīng)過處理后,又將返回用戶一個(gè)HTTP響應(yīng)。例如,用戶請(qǐng)求一張圖片時(shí),Web服務(wù)器首先接受用戶的請(qǐng)求,然后找到相應(yīng)的圖片,并返回用戶一個(gè)包含該圖片的響應(yīng)。Web服務(wù)器在處理請(qǐng)求時(shí),一般需要調(diào)用其他的服務(wù)器程序,如CGI腳本、JSP腳本、Servlet程序獲得ASP腳本等服務(wù)器端程序。無論服務(wù)器端程序如何運(yùn)行,這些服務(wù)器端程序通常需要生成一個(gè)HTML的響應(yīng)頁面來讓瀏覽器瀏覽用。常用的Web服務(wù)器有如下幾種。(1)IIS。全稱為InternetInformationServer,是由微軟公司開發(fā)的一款Web服務(wù)器產(chǎn)品。IIS是目前最流行的Web服務(wù)器,使用ASP或者ASP.NET編寫的程序,一般都使用IIS進(jìn)行部署和發(fā)布。(2)BEAWebLogicServer。是由BEASystems公司開發(fā)的一款Web服務(wù)器產(chǎn)品。WebLogic主要用來構(gòu)建企業(yè)級(jí)的大型項(xiàng)目,如使用EJB開發(fā)的項(xiàng)目一般都使用WebLogic作為服務(wù)器。(3)Apache。是由Apache開源組織開發(fā)的一款Web服務(wù)器產(chǎn)品。Apache服務(wù)器是目前使用人數(shù)最多的服務(wù)器。使用PHP編寫的程序一般都使用Apache服務(wù)器進(jìn)行部署和發(fā)布。(4)Tomcat。同樣也是由Apache開源組織開發(fā)的。Tomcat服務(wù)器主要用來運(yùn)行Servlet、JSP或其他輕量級(jí)框架開發(fā)的程序。Tomcat服務(wù)器運(yùn)行時(shí)占用的系統(tǒng)資源非常小,而且提供了非常多的擴(kuò)展功能,同時(shí)還支持負(fù)載平衡與郵件服務(wù)等開發(fā)應(yīng)用系統(tǒng)常用的功能。這些優(yōu)點(diǎn)使得Tomcat成為開發(fā)和調(diào)試JavaWeb程序的首選,本書的所有的案例都將運(yùn)行于Tomcat服務(wù)器之下。作者心得:Tomcat服務(wù)器的安裝和使用非常簡單,非常適合初學(xué)者學(xué)習(xí)使用。而且Tomcat也完全支持Struts2、Hibernate及Spring框架。Tomcat最大的優(yōu)點(diǎn)是,占用的系統(tǒng)資源非常少,尤其適合于個(gè)人電腦。2.1.3數(shù)據(jù)庫管理系統(tǒng)通俗地講,數(shù)據(jù)庫就是按照數(shù)據(jù)結(jié)構(gòu)來組織、存儲(chǔ)和管理數(shù)據(jù)的倉庫。數(shù)據(jù)庫分為層次式數(shù)據(jù)庫、網(wǎng)絡(luò)式數(shù)據(jù)庫和關(guān)系式數(shù)據(jù)庫3種。目前最常用的是關(guān)系式數(shù)據(jù)庫,也稱為關(guān)系型數(shù)據(jù)庫。目前常用的數(shù)據(jù)庫管理系統(tǒng)有以下幾種。(1)DB2數(shù)據(jù)庫。是由IBM公司開發(fā)并發(fā)布的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。DB2一般應(yīng)用于大型的應(yīng)用程序,支持單用戶環(huán)境到大型機(jī),并應(yīng)用于OS/2、Windows等操作系統(tǒng)下。(2)Oracle數(shù)據(jù)庫。是由甲骨文公司開發(fā)并發(fā)布的一款企業(yè)級(jí)關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。目前大部分的企業(yè)級(jí)應(yīng)用都是用Oracle數(shù)據(jù)庫作為其數(shù)據(jù)庫管理系統(tǒng),但是其價(jià)格非常昂貴,而且非常耗費(fèi)系統(tǒng)資源。(3)SQLServer數(shù)據(jù)庫。是由微軟公司開發(fā)的一款數(shù)據(jù)庫管理系統(tǒng)。由于它具有很好的伸縮性和集成度高等優(yōu)點(diǎn),使之可以運(yùn)行于微型機(jī)到大型多處理器的服務(wù)器等多種平臺(tái)中。(4)MySQL數(shù)據(jù)庫。是由MySQLAB公司開發(fā)的一款小型關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。它安裝后占用系統(tǒng)資源非常少,運(yùn)行速度非??欤议_放源代碼。因此,目前許多中小型網(wǎng)站都選擇MySQL作為其網(wǎng)站數(shù)據(jù)庫。(5)Access數(shù)據(jù)庫。同樣是由微軟公司開發(fā)的一款桌面數(shù)據(jù)庫管理系統(tǒng)。它屬于Office辦公軟件中的一個(gè)組成部分,具有界面友好、開發(fā)簡單、易學(xué)易用、接口靈活等特點(diǎn)。由于MySQL數(shù)據(jù)庫體積小、速度快、總體擁有成本低,尤其是其開放源代碼,所以使之成為了JavaWeb開發(fā)首選的數(shù)據(jù)庫。本書所有案例都將使用MySQL數(shù)據(jù)庫來進(jìn)行開發(fā)。作者心得:MySQL數(shù)據(jù)庫是一款小型的數(shù)據(jù)庫管理系統(tǒng),就算是一臺(tái)配置不高的個(gè)人電腦,也能非常流暢地運(yùn)行它。MySQL數(shù)據(jù)庫擁有其他數(shù)據(jù)庫(如Oracle等)的一些常用功能,對(duì)于個(gè)人學(xué)習(xí)完全夠用。2.2下載和安裝JDK6如果需要運(yùn)行有關(guān)的Java程序,就需要安裝JRE(JavaRuntimeEnvironment),即Java運(yùn)行時(shí)環(huán)境。而如果需要編譯并執(zhí)行有關(guān)Java程序,就必須安裝安裝JDK(Java2SoftwareDevelopmentKit),即Java軟件開發(fā)工具包。本節(jié)將詳細(xì)介紹如何下載并安裝JDK,并介紹如何配置環(huán)境變量。2.2.1下載JDK6下載JDK非常簡單,只需按照如下步驟,即可從SUN公司的官方網(wǎng)站獲得免費(fèi)的JDK。第一步:進(jìn)入Java官方首頁“”。第二步:單擊其中的“Dowloads”菜單欄,并選擇其中的“JavaSE”,彈出JavaSE下載頁面。第三步:單擊“JDK6Update7”右邊的“Download”鏈接進(jìn)行下載,彈出JDK6Update7選擇下載頁面。第四步:通過下拉菜單列表選擇所使用的操作系統(tǒng)平臺(tái)及語言環(huán)境,并勾選“IagreetotheJavaSEDevelopmentKit6LicenseAgreement”復(fù)選框,單擊“Continue”按鈕繼續(xù),彈出JDK6Update7下載頁面,如圖2-1所示。圖2-1JDK6Update7下載頁面第五步:該下載頁面包含兩個(gè)版本的安裝文件,一個(gè)是“WindowsOfflineInstallation”,即離線安裝版本;一個(gè)是“WindowsOnlineInstallation”,即在線安裝版本。為了安裝方便,這里選擇離線安裝版本。單擊“jdk-6u7-windows-i586-p.exe”鏈接,進(jìn)行下載。作者心得:建議大家選擇離線安裝版本,這樣在安裝時(shí)就無須一邊下載一邊安裝,可以大大減少JDK的安裝時(shí)間。2.2.2安裝JDK6下載完成JDK后,就可以通過下載的安裝文件來安裝JDK了,步驟如下。第一步:雙擊下載好的“jdk-6u7-windows-i586-p.exe”文件,打開許可證協(xié)議確認(rèn)界面,如圖2-2所示。圖2-2許可證協(xié)議確認(rèn)界面第二步:在打開的許可證協(xié)議確認(rèn)界面中選擇“接受”按鈕,打開自定義安裝界面,如圖2-3所示。圖2-3自定義安裝界面第三步:在安裝界面的列表中選擇相應(yīng)的選項(xiàng),如“開發(fā)工具”等。單擊“更改”按鈕,即可以指定該選項(xiàng)的安裝目錄,如安裝到“C:\jdk1.6.0_07\”路徑下。如果不希望使用某個(gè)功能,如“JavaDB”選項(xiàng),可以單擊其選項(xiàng)前面的按鈕,并選擇其中的“此功能將不可用”選項(xiàng)。配置完成后,單擊“下一步”按鈕,進(jìn)入JDK安裝界面。第四步:經(jīng)過數(shù)分鐘后JDK完成安裝,將自動(dòng)打開Java運(yùn)行時(shí)環(huán)境自定義安裝界面。第五步:Java運(yùn)行時(shí)環(huán)境配置和JDK配置完全相同,配置完成后單擊“下一步”按鈕,進(jìn)入Java運(yùn)行時(shí)環(huán)境安裝界面。第六步:經(jīng)過數(shù)分鐘后,Java運(yùn)行時(shí)環(huán)境安裝完成,進(jìn)入安裝成功界面,如圖2-4所示。單擊其中的“完成”按鈕,即可完成JDK的安裝。圖2-4完成JDK的安裝作者心得:在選擇JDK安裝目錄時(shí),不要使用中文字符,并保證JDK的路徑中不要有中文存在。2.2.3配置環(huán)境變量JDK安裝成功后,但還不能夠使用控制臺(tái)來編譯和運(yùn)行Java程序。要想使用控制臺(tái)來編譯和運(yùn)行Java程序,還需要配置系統(tǒng)環(huán)境變量。配置系統(tǒng)環(huán)境變量的步驟如下。第一步:右鍵單擊“我的電腦”,選擇“屬性”,在打開的“屬性”窗口中選擇“高級(jí)”選項(xiàng)卡,如圖2-5所示。圖2-5高級(jí)選項(xiàng)卡界面第二步:在“高級(jí)”選項(xiàng)卡界面中單擊“環(huán)境變量”按鈕,打開環(huán)境變量配置窗口,如圖2-6所示。圖2-6環(huán)境變量配置窗口第三步:根據(jù)自己的需要,在“用戶變量”或者“系統(tǒng)變量”選項(xiàng)組中,單擊“新建”按鈕。打開“新建用戶變量”窗口如圖2-7所示。這里值得注意的是,如果在“用戶變量”中新建,那么環(huán)境變量只對(duì)該用戶起作用;如果是在“系統(tǒng)變量”中新建,那么將對(duì)所有的用戶都起作用。圖2-7新建用戶變量窗口第四步:在“變量名”文本框中輸入“JAVA_HOME”,在變量值中輸入JDK的安裝路徑,如“C:\jdk1.6.0_07”,單擊“確定”按鈕,完成“JAVA_HOME”環(huán)境變量的添加。通過同樣的方法添加“CLASSPATH”環(huán)境變量,其變量值為“.;”。同時(shí)找到“PATH”環(huán)境變量,單擊其中的“編輯”按鈕進(jìn)行修改,在其最開始位置添加文本“%JAVA_HOME%\bin;”。單擊“確定”按鈕完成修改。通過上述步驟,環(huán)境變量就設(shè)置完成了,這個(gè)時(shí)候就可以通過控制臺(tái)來編譯并運(yùn)行Java程序了。2.3下載和安裝Tomcat6.0服務(wù)器如果需要進(jìn)行JavaWeb開發(fā),還需要安裝Web服務(wù)器,這里選擇Tomcat服務(wù)器。Tomcat服務(wù)器是由Apache開源組織開發(fā)并維護(hù)的,能夠支持JSP和Servlet,而且Tomcat服務(wù)器是免費(fèi)產(chǎn)品,并且提供其源代碼。本節(jié)將詳細(xì)介紹如何下載并安裝Tomcat服務(wù)器,并介紹如何配置虛擬目錄。2.3.1下載Tomcat下載Tomcat服務(wù)器非常簡單,只需按照如下步驟,即可從Apache的官方網(wǎng)站獲得免費(fèi)的Tomcat。第一步:打開Apache官方站點(diǎn)“/”。第二步:在右邊的“ApacheProjects”下找到“Tomcat”項(xiàng)目鏈接,單擊該鏈接進(jìn)入Tomcat項(xiàng)目首頁。第三步:從右邊的“Download”系列鏈接中,可以看到Tomcat的目前最新版本為“Tomcat6.x”,單擊該鏈接進(jìn)入“Tomcat6.x”下載頁面。第四步:從該下載頁面中可以看出目前Tomcat的最新版本為6.0.18。其中“BinaryDistributions”下的文件都是編譯好的二進(jìn)制文件,而“SourceCodeDistributions”下面的文件為Tomcat的源代碼,這里選擇下載編譯好的二進(jìn)制文件?!癇inaryDistributions”下又分為兩類,一類是“Core”即Tomcat核心,一類是“Deployer”即Tomcat部署文件,這里選擇下載“Core”下的文件?!癈ore”下的文件又分為3種,一種是zip格式的,即Windows下的壓縮文件;一種是tar.gz格式,即Linux下的壓縮文件;一種是WindowsServiceInstaller,即Windows安裝文件。這里選擇下載zip格式的Tomcat即可。作者心得:添建議大家下載并安裝zip格式的Tomcat,這樣直接解壓縮就可以使用,無須安裝。2.3.2安裝Tomcat下載完成Tomcat服務(wù)器后,就可以通過下載的壓縮文件夾來安裝Tomcat,步驟如下。第一步:安裝Tomcat非常簡單,只需要將下載好的“apache-tomcat-6.0.18.zip”解壓。如解壓到“E:\apache-tomcat-6.0.18”目錄下,如圖2-8所示。圖2-8“E:\apache-tomcat-6.0.18”目錄第二步:打開安裝目錄下的“bin”文件夾,找到其中的“startup.bat”,雙擊該批處理文件,如圖2-9所示。圖2-9運(yùn)行startup.bat第三步:當(dāng)控制臺(tái)輸出如“Serverstartupin604ms”的文本,則表示Tomcat服務(wù)器啟動(dòng)成功。打開IE瀏覽器,在地址欄輸入“http://localhost:8080”,打開如圖2-10所示頁面,則表示Tomcat服務(wù)器安裝成功。圖2-10Tomcat服務(wù)器首頁作者心得:Tomcat服務(wù)器的默認(rèn)監(jiān)聽端口為8080,在啟動(dòng)Tomcat服務(wù)器前必須保證該端口沒有被其他應(yīng)用程序占用,否則會(huì)出現(xiàn)啟動(dòng)錯(cuò)誤。2.3.3配置虛擬目錄虛擬目錄即為保存網(wǎng)站資源如JSP等文件的目錄,配置虛擬目錄分為如下幾個(gè)步驟。第一步:在磁盤的任意位置創(chuàng)建一個(gè)文件夾,如“F:\JavaWebAPP”。該文件夾即為虛擬目錄地址。第二步:在虛擬目錄中創(chuàng)建一個(gè)名為“WEB-INF”的文件夾,并在該文件夾中創(chuàng)建一個(gè)web.xml文件,web.xml代碼如下所示。第三步:打開Tomcat安裝目錄conf文件夾中的server.xml,找到文件最末端的“</Host>”,在其上面一行添加如下代碼:<Contextpath="/test"docBase="F:\JavaWebAPP"/>第四步:為了使得虛擬目錄生效,還需要使Tomcat服務(wù)器重新加載server.xml文件,所以必須重啟Tomcat服務(wù)器。作者心得:在server.xml文件中可以配置多個(gè)虛擬目錄,多個(gè)虛擬目錄之間通過path屬性值來區(qū)分。2.4下載和安裝MySQL數(shù)據(jù)庫數(shù)據(jù)庫管理系統(tǒng)選擇使用MySQL數(shù)據(jù)庫,它的體積非常小、速度非???,許多中小型網(wǎng)站為了降低網(wǎng)站總體成本而選擇MySQL作為網(wǎng)站數(shù)據(jù)庫。下面將詳細(xì)介紹如何下載MySQL數(shù)據(jù)庫和如何安裝MySQL數(shù)據(jù)庫。2.4.1下載MySQL數(shù)據(jù)庫首先登

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論