入門第1講-SSH基礎(chǔ)(預(yù)習(xí)資料)課件_第1頁(yè)
入門第1講-SSH基礎(chǔ)(預(yù)習(xí)資料)課件_第2頁(yè)
入門第1講-SSH基礎(chǔ)(預(yù)習(xí)資料)課件_第3頁(yè)
入門第1講-SSH基礎(chǔ)(預(yù)習(xí)資料)課件_第4頁(yè)
入門第1講-SSH基礎(chǔ)(預(yù)習(xí)資料)課件_第5頁(yè)
已閱讀5頁(yè),還剩60頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、Struts2SpringHibernate入門第1講主講:黃錫波是最辛苦的一門課SSH框架技術(shù)是兩年課程的大集成、大總結(jié)是真正開發(fā)企業(yè)級(jí)的J2EE網(wǎng)站的技術(shù)是最辛苦的一門課,大家要有思想準(zhǔn)備理由:必要內(nèi)容太多,90學(xué)時(shí)僅可講完基礎(chǔ)辛苦1:實(shí)訓(xùn)多,每周有任務(wù)卡。辛苦2:測(cè)驗(yàn)多,每周有測(cè)驗(yàn)。辛苦3:考勤嚴(yán),每次課需電子簽到(SSH簽到網(wǎng)站)。辛苦4:課前要預(yù)習(xí),預(yù)習(xí)是學(xué)本事最好方法。辛苦5:以項(xiàng)目為導(dǎo)向,課程結(jié)束就拿自做項(xiàng)目面試。辛苦6:SSH不難,難的是靈活應(yīng)用兩年課程知識(shí)點(diǎn)。辛苦7:就好業(yè)壓力大,全力以赴才行,也許搭上周六日。辛苦8:枯燥,學(xué)本事需要自律。辛苦9:寂寞,學(xué)本事需要定力。辛苦1

2、0:無聊,調(diào)式Bug,錯(cuò)誤信息也許比源程序還長(zhǎng)且是英文的,學(xué)本事需要耐力。 。是最辛苦的一門課所謂項(xiàng)目導(dǎo)向,是學(xué)習(xí)軟件技術(shù)唯一的方法,就是為做項(xiàng)目而學(xué)習(xí)技術(shù)。為學(xué)技術(shù)而學(xué)技術(shù),一定學(xué)不到的。項(xiàng)目功能1功能2功能n思路1:項(xiàng)目=n個(gè)功能的集合,項(xiàng)目大小是指開發(fā)時(shí)間的長(zhǎng)短而已,10天開發(fā)1個(gè)功能,100天也許就有10個(gè)功能了,有10個(gè)功能的項(xiàng)目不算小了。因此,邊學(xué)SSH,邊改造你原來的小網(wǎng)站,是最快的學(xué)習(xí)方法,到課程結(jié)束,你基本就能開發(fā)有10個(gè)功能的網(wǎng)站了。思路2:你開發(fā)的網(wǎng)站拿去面試,就說明你有基本的項(xiàng)目經(jīng)驗(yàn)了。思路3:教材的案例很不錯(cuò)的,多閱讀,用來參考開發(fā)你自己的網(wǎng)站。思路4:QQ群有幾個(gè)有

3、源代碼的項(xiàng)目案例,多分析參考開發(fā)自己的網(wǎng)站。思路5:很多人說我不知道開發(fā)什么項(xiàng)目,我的觀點(diǎn)是你真的用心學(xué)習(xí)的話就一定懂的,如小的不得了“SSH上課簽到”,“SSH成績(jī)查詢”,“SSH播放視頻”等小網(wǎng)站,小功能開發(fā)的多了就是一個(gè)大項(xiàng)目。在企業(yè)也是一個(gè)一個(gè)功能開發(fā)的,過半年就是一個(gè)大網(wǎng)站了。回顧 - 何謂動(dòng)態(tài)網(wǎng)頁(yè)?所謂“動(dòng)態(tài)”,并不是指那幾個(gè)放在網(wǎng)頁(yè)上的GIF,Flash等動(dòng)畫,動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)有以下幾個(gè)特點(diǎn):1,“交互性”即網(wǎng)頁(yè)會(huì)根據(jù)用戶的要求和選擇而動(dòng)態(tài)改變和響應(yīng),將瀏覽器作為客戶端界面。2,“自動(dòng)更新”即無須手動(dòng)地更新HTML文檔,便會(huì)自動(dòng)生成新的頁(yè)面,可以大大節(jié)省工作量。3,“因時(shí)因人而變”,

4、即當(dāng)不同的時(shí)間,不同的人訪問同一網(wǎng)址時(shí)會(huì)產(chǎn)生不同的頁(yè)面。目前主流的動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)有JSP,ASP,PHP等。動(dòng)態(tài)網(wǎng)頁(yè)的核心技術(shù)是:(1)前臺(tái)如何動(dòng)態(tài)地獲取后臺(tái)數(shù)據(jù)?(2)前臺(tái)提交數(shù)據(jù)時(shí),后臺(tái)如何正確地捕獲?其實(shí)JSP,ASP,PHP三門技術(shù)在核心技術(shù)的應(yīng)用上是非常非常類似的,懂JSP,再學(xué)習(xí)PHP,ASP不會(huì)超過一個(gè)月,反過來就難了(Java語言最少一年的編程經(jīng)歷)。Web技術(shù)的發(fā)展Java程序設(shè)計(jì) -學(xué)期1數(shù)據(jù)結(jié)構(gòu) -學(xué)期2計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)-學(xué)期3網(wǎng)絡(luò)編程技術(shù) -學(xué)期3動(dòng)態(tài)Web技術(shù) -學(xué)期4SQL -學(xué)期2SSH -學(xué)期5軟件測(cè)試技術(shù) -學(xué)期5HTML/CSS -學(xué)期3Flash動(dòng)畫 -學(xué)期3

5、計(jì)算機(jī)圖形圖像-學(xué)期4JavaScript -學(xué)期4富客戶技術(shù) -學(xué)期4/5Struts2(OGNL) 學(xué)期5軟件測(cè)試技術(shù) -學(xué)期5Model1與Model2Model1整個(gè)web應(yīng)用幾乎全部由JSP頁(yè)面組成,JSP頁(yè)面接受處理客戶端請(qǐng)求,對(duì)請(qǐng)求處理后直接做出響應(yīng)。用少量javaBean來處理數(shù)據(jù)庫(kù)連接等操作MVCMVC并不是java語言所特有的設(shè)計(jì)思想,它是所有面向?qū)ο蟪绦蛟O(shè)計(jì)語言都應(yīng)該遵守的規(guī)范Model(模型)、View(視圖)、Controller(控制器)這三個(gè)部分以最少的耦合協(xié)同工作,以提高應(yīng)用的可擴(kuò)展性及可維護(hù)性Struts2簡(jiǎn)介Struts 2以WebWork為核心,采用攔截器

6、的機(jī)制來處理用戶的請(qǐng)求,這樣的設(shè)計(jì)也使得業(yè)務(wù)邏輯控制器能夠與Servlet API完全脫離開,所以Struts 2可以理解為WebWork的更新產(chǎn)品Struts2體系概圖搭建Struts2開發(fā)環(huán)境導(dǎo)入相關(guān)jar文件編寫Struts2的配置文件在web.xml中加入Struts2框架的啟動(dòng)配置Struts2常用jar包不同應(yīng)用需要的jar包是不同的,開發(fā)struts2程序需要的jar至少應(yīng)具備以下jar包:Struts2-core-2.x.x.jar:struts2框架核心類庫(kù)Xwork-2.x.x.jar:xwork類庫(kù)Struts2在其上構(gòu)建Ognl-2.6.x.jar:對(duì)象導(dǎo)航語言,用來讀

7、寫對(duì)象的屬性Freemarker-2.3.x.jar:Struts2UI標(biāo)簽Commons-logging-1.1.x.jar:日志記錄功能jarCommons-fileupload-1.2.1.jar:文件上傳組件commons-io-1.3.2.jar:文件上傳組件Struts2在web中的啟動(dòng)配置Struts1中,struts框架是通過servlet啟動(dòng)的。在struts2中,struts框架是通過Filter啟動(dòng)的 struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter struts2

8、/*StrutsPrepareAndExecuteFilter中init方法讀取struts.xml完成初始化;讀取struts.xml后,以javaBean的形式保存在內(nèi)存中,處理用戶請(qǐng)求時(shí)不是每次都讀取web.xmlStruts2第一個(gè)應(yīng)用hello world在struts.xml中加入如下配置 /WEB-INF/hello.jsp *package:與java包的功能類似,通常一組業(yè)務(wù)功能相關(guān)的action放在同一包下;其中name屬性為自定義,主要用于action的繼承;namespace與action的name屬性組合在一起作為訪問該包下action的一部分,可以缺省; strut

9、s-default是struts2的核心包,定義了struts2的核心功能,通常情況下都要繼承該包Struts2處理流程1.瀏覽器發(fā)送請(qǐng)求2.核心控制器FileterDispatcher根據(jù)請(qǐng)求決定調(diào)用合適的Action3.WebWork的攔截器鏈自動(dòng)對(duì)請(qǐng)求應(yīng)用通用功能,如validaton等4.回調(diào)Action的execute方法5.Action的execute方法處理結(jié)果信息被輸出到瀏覽器中一個(gè)簡(jiǎn)單的提交功能一個(gè)簡(jiǎn)單的提交功能實(shí)現(xiàn)控制器Actionpublic class LoginAction private String username;private String pwd;publ

10、ic String execute() if(blues.equals(this.getUsername() & 8888.equals(this.getPwd()return success; else return error; 配置Action上面應(yīng)用處理流程跟蹤用戶狀態(tài)Struts2中訪問HttpSession使用ActionContext類,該類提供一個(gè)getSession方法,但該方法返回一個(gè)Map。為的是將Action類與ServletAPI完全分離,來簡(jiǎn)化Action類的測(cè)試。但是Struts2的系列攔截器會(huì)負(fù)責(zé)該Session和HttpSession之間的轉(zhuǎn)換ActionCo

11、ntext類介紹增加數(shù)據(jù)校驗(yàn)ActionSupport類是一個(gè)工具類,它已經(jīng)實(shí)現(xiàn)了Action接口以及Validateable接口,提供了數(shù)據(jù)校驗(yàn)功能。通過繼承該類,來完成數(shù)據(jù)校驗(yàn)功能配置input視圖使用struts2標(biāo)簽輸出驗(yàn)證錯(cuò)誤信息其他驗(yàn)證使用struts2驗(yàn)證框架 *注意:該文件命名應(yīng)遵守以下規(guī)則: 1.ActionName-validation:ActionName就是需要校驗(yàn)的Action類名 2.該文件與Action類放在同一目錄下Struts2包配置詳解 /welcome.jsp必填,該名字是被其它包引用時(shí)的KEY可選,定義該包命名空間,用以區(qū)分同名Action可選,包指定繼

12、承的包,可繼承Action、攔截器等Action對(duì)應(yīng)的URL搜索順序如果struts配置文件中只配置了名空間為/test的package,action的name屬性為hello,那么該action的url為:http:/localhost:8080/Struts/test/hello 但是如下路徑也可以訪問: http:/localhost:8080/Struts/test/12/23/hello http:/localhost:8080/Struts/test/ss/bb/cc/hello 搜索會(huì)按照逐級(jí)向上的順序搜索直到找到匹配的Action對(duì)應(yīng)的URL搜索順序如果對(duì)應(yīng)的namespace

13、中沒有指定的action,它會(huì)去沒有指定namespace的值或者namespace值為”的包去找,如果還找不到則報(bào)錯(cuò)Action配置中的各項(xiàng)默認(rèn)值/WEB-INF/hello.jsp 1.如果沒指定class,默認(rèn)為ActionSupport2.如果沒指定method,默認(rèn)執(zhí)行action中execute()方法3.如果沒指定result的name屬性,默認(rèn)值為success配置文件的包含Strust2視圖轉(zhuǎn)發(fā)流程Struts2支持的結(jié)果類型在struts-default.xml文件及struts-plugin.xml中:結(jié)果類型說明Action中result的轉(zhuǎn)發(fā)類型RedirectRed

14、irect:與dispatcher結(jié)果類型相對(duì),dispatcher是將請(qǐng)求Forward到指定的視圖資源,而redirect意味將請(qǐng)求重定向到指定視圖資源特點(diǎn):會(huì)丟失所有的請(qǐng)求參數(shù)、請(qǐng)求屬性以及Action的處理結(jié)果Action中result的轉(zhuǎn)發(fā)類型RedirectAction中result的轉(zhuǎn)發(fā)類型Redirect-Action該結(jié)果類型與redirect相似,也是重定向。二者的區(qū)別:Redirect通常用于生成一個(gè)對(duì)具體資源的請(qǐng)求Redirect-Action通常用于生成一個(gè)對(duì)其他Action的請(qǐng)求二者的相同點(diǎn):都是重新生成一個(gè)新請(qǐng)求都會(huì)丟失請(qǐng)求參數(shù)、請(qǐng)求屬性和前一個(gè)Action的處理

15、結(jié)果動(dòng)態(tài)結(jié)果這個(gè)Action可以處理所有匹配crud_*.action模式的請(qǐng)求,如當(dāng)有一個(gè)crud_create.action請(qǐng)求時(shí),系統(tǒng)會(huì)調(diào)用lee.CrudAction類的create方法來處理用戶請(qǐng)求,當(dāng)請(qǐng)求結(jié)果為input字符串時(shí),跳轉(zhuǎn)input.jsp頁(yè)面;當(dāng)請(qǐng)求結(jié)果為success時(shí),將轉(zhuǎn)入create.jsp頁(yè)面Action中result的轉(zhuǎn)發(fā)類型Chain:主要用于把相關(guān)的幾個(gè)action連接起來,共同完成一個(gè)功能,被跳轉(zhuǎn)的action中仍能獲取上個(gè)頁(yè)面的值,如request信息 step2.action finish.jsp 全局結(jié)果如果Action里包含與全局結(jié)果里同名的

16、結(jié)果,則Action的局部結(jié)果覆蓋全局。只有在Action里的局部結(jié)果里找不到相應(yīng)轉(zhuǎn)發(fā)視圖,才會(huì)去全局結(jié)果中找使用模型驅(qū)動(dòng)使用單獨(dú)的JavaBean實(shí)例來貫穿整個(gè)MVC流程;驅(qū)動(dòng)類型:模型驅(qū)動(dòng):使用單獨(dú)的VO(值對(duì)象)來封裝請(qǐng)求參數(shù)和處理結(jié)果屬性驅(qū)動(dòng):使用Action示例中的屬性來封裝聲明式異常捕捉Struts2的異常處理機(jī)制是通過在配置文件中配置元素來完成的,該元素需要制定兩個(gè)屬性:Exception:此屬性指定映射的異常類型Result:指出現(xiàn)該異常時(shí),系統(tǒng)轉(zhuǎn)入result所指向的結(jié)果注:該標(biāo)簽分為全局與局部映射,其作用與result的全局和局部一致Struts2類型轉(zhuǎn)換對(duì)于B/S結(jié)構(gòu)的應(yīng)

17、用而言,用戶通過瀏覽器輸入的數(shù)據(jù)不可能擁有多種數(shù)據(jù)類型,這就需要完成由字符串向多種數(shù)據(jù)類型的轉(zhuǎn)換工作類型轉(zhuǎn)換分類:局部類型轉(zhuǎn)換只對(duì)指定Action的指定屬性生效全局類型轉(zhuǎn)換對(duì)指定類型的全部屬性都有效Struts2內(nèi)建的類型轉(zhuǎn)換器類型轉(zhuǎn)換錯(cuò)誤處理Struts2提供一個(gè)conversionError的攔截器(該攔截器在struts-default.xml配置),如果Struts2的類型轉(zhuǎn)換器在類型轉(zhuǎn)換時(shí)出現(xiàn)錯(cuò)誤,該攔截器將負(fù)責(zé)將對(duì)應(yīng)錯(cuò)誤封裝成表單域錯(cuò)誤(fieldError),并將這些錯(cuò)誤信息放入ActionContext中類型轉(zhuǎn)換的錯(cuò)誤處理流程Struts2的核心攔截器當(dāng)請(qǐng)求到達(dá)Struts 2

18、的ServletDispatcher時(shí),Struts 2會(huì)查找配置文件,并根據(jù)其配置實(shí)例化相對(duì)的攔截器對(duì)象,然后串成一個(gè)列表(list),最后一個(gè)一個(gè)地調(diào)用列表中的攔截器文件上傳和下載上傳1.加入commons-fileupload-1.2.1.jar、commons-io-1.3.2.jar2.把form表單的enctype設(shè)置為:” multipart/form-data”,method設(shè)置為post3.在Action中添加屬性Private File file/該屬性與控件名稱一致添加代碼:FileUtils.copyFile(srcFile, destFile);限制文件上傳大小及類型 /upload/result.jsp text/plain1024 文件下載在Action中將下載文件轉(zhuǎn)換為輸出流public InputStream getDownLoadFile() return ServletActionContext.getServletContext().getResourceAsStream(“文件路徑);文件下載 設(shè)置文件mime-type filenam

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論