版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Struts2
Spring
Hibernate入門(mén)第1講主講:黃錫波是最辛苦的一門(mén)課SSH框架技術(shù)是兩年課程的大集成、大總結(jié)是真正開(kāi)發(fā)企業(yè)級(jí)的J2EE網(wǎng)站的技術(shù)是最辛苦的一門(mén)課,大家要有思想準(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é)本事需要定力。辛苦10:無(wú)聊,調(diào)式Bug,錯(cuò)誤信息也許比源程序還長(zhǎng)且是英文的,學(xué)本事需要耐力。。。。。。是最辛苦的一門(mén)課所謂項(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)目大小是指開(kāi)發(fā)時(shí)間的長(zhǎng)短而已,10天開(kāi)發(fā)1個(gè)功能,100天也許就有10個(gè)功能了,有10個(gè)功能的項(xiàng)目不算小了。因此,邊學(xué)SSH,邊改造你原來(lái)的小網(wǎng)站,是最快的學(xué)習(xí)方法,到課程結(jié)束,你基本就能開(kāi)發(fā)有10個(gè)功能的網(wǎng)站了。思路2:你開(kāi)發(fā)的網(wǎng)站拿去面試,就說(shuō)明你有基本的項(xiàng)目經(jīng)驗(yàn)了。思路3:教材的案例很不錯(cuò)的,多閱讀,用來(lái)參考開(kāi)發(fā)你自己的網(wǎng)站。思路4:QQ群有幾個(gè)有源代碼的項(xiàng)目案例,多分析參考開(kāi)發(fā)自己的網(wǎng)站。思路5:很多人說(shuō)我不知道開(kāi)發(fā)什么項(xiàng)目,我的觀點(diǎn)是你真的用心學(xué)習(xí)的話就一定懂的,如小的不得了“SSH上課簽到”,“SSH成績(jī)查詢(xún)”,“SSH播放視頻”等小網(wǎng)站,小功能開(kāi)發(fā)的多了就是一個(gè)大項(xiàng)目。在企業(yè)也是一個(gè)一個(gè)功能開(kāi)發(fā)的,過(guò)半年就是一個(gè)大網(wǎng)站了。回顧-何謂動(dòng)態(tài)網(wǎng)頁(yè)?所謂“動(dòng)態(tài)”,并不是指那幾個(gè)放在網(wǎng)頁(yè)上的GIF,Flash等動(dòng)畫(huà),動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)有以下幾個(gè)特點(diǎn):1,“交互性”即網(wǎng)頁(yè)會(huì)根據(jù)用戶(hù)的要求和選擇而動(dòng)態(tài)改變和響應(yīng),將瀏覽器作為客戶(hù)端界面。2,“自動(dòng)更新”即無(wú)須手動(dòng)地更新HTML文檔,便會(huì)自動(dòng)生成新的頁(yè)面,可以大大節(jié)省工作量。3,“因時(shí)因人而變”,即當(dāng)不同的時(shí)間,不同的人訪問(wèn)同一網(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三門(mén)技術(shù)在核心技術(shù)的應(yīng)用上是非常非常類(lèi)似的,懂JSP,再學(xué)習(xí)PHP,ASP不會(huì)超過(guò)一個(gè)月,反過(guò)來(lái)就難了(Java語(yǔ)言最少一年的編程經(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)畫(huà)-學(xué)期3計(jì)算機(jī)圖形圖像-學(xué)期4JavaScript-學(xué)期4富客戶(hù)技術(shù)-學(xué)期4/5Struts2(OGNL)–學(xué)期5軟件測(cè)試技術(shù)-學(xué)期5Web技術(shù)的發(fā)展Model1與Model2Model1整個(gè)web應(yīng)用幾乎全部由JSP頁(yè)面組成,JSP頁(yè)面接受處理客戶(hù)端請(qǐng)求,對(duì)請(qǐng)求處理后直接做出響應(yīng)。用少量javaBean來(lái)處理數(shù)據(jù)庫(kù)連接等操作Model2基于MVC設(shè)計(jì)模式,Servlet作為前端控制器,負(fù)責(zé)接受客戶(hù)端發(fā)送的請(qǐng)求,在servlet中只包含控制邏輯,然后調(diào)用后端JavaBean來(lái)完成實(shí)際的邏輯處理,最后轉(zhuǎn)發(fā)到響應(yīng)的JSPMVCMVC并不是java語(yǔ)言所特有的設(shè)計(jì)思想,它是所有面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言都應(yīng)該遵守的規(guī)范Model(模型)、View(視圖)、Controller(控制器)這三個(gè)部分以最少的耦合協(xié)同工作,以提高應(yīng)用的可擴(kuò)展性及可維護(hù)性Struts2簡(jiǎn)介 Struts2以WebWork為核心,采用攔截器的機(jī)制來(lái)處理用戶(hù)的請(qǐng)求,這樣的設(shè)計(jì)也使得業(yè)務(wù)邏輯控制器能夠與ServletAPI完全脫離開(kāi),所以Struts2可以理解為WebWork的更新產(chǎn)品Struts2體系概圖Struts2的優(yōu)點(diǎn)1.設(shè)計(jì)上不依賴(lài)于ServletAPI和StrutsAPIpublicclassmyActionextendsAction{publicActionForwardexcute(ActionMapping mapping,ActionFormform,HttpServletRequest request,HttpServletResponseresponse)throws Exception{…}}2.使用大量的攔截器3.提供了類(lèi)型轉(zhuǎn)換器(這點(diǎn)在struts1中沒(méi)有)4.支持多種表現(xiàn)層技術(shù)如:JSP/freeMarker5.可以對(duì)指定方法進(jìn)行校驗(yàn)6.提供全局范圍、包范圍和Action范圍的國(guó)際化資源文件管理搭建Struts2開(kāi)發(fā)環(huán)境導(dǎo)入相關(guān)jar文件編寫(xiě)Struts2的配置文件在web.xml中加入Struts2框架的啟動(dòng)配置Struts2常用jar包不同應(yīng)用需要的jar包是不同的,開(kāi)發(fā)struts2程序需要的jar至少應(yīng)具備以下jar包:Struts2-core-2.x.x.jar:struts2框架核心類(lèi)庫(kù)Xwork-2.x.x.jar:xwork類(lèi)庫(kù)Struts2在其上構(gòu)建Ognl-2.6.x.jar:對(duì)象導(dǎo)航語(yǔ)言,用來(lái)讀寫(xiě)對(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應(yīng)用的配置文件默認(rèn)配置文件為struts.xml,該文件需要存放在WEB-INF/classes下<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEstrutsPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN""/dtds/struts-2.0.dtd"><struts><!--配置信息--></struts>Struts2在web中的啟動(dòng)配置Struts1中,struts框架是通過(guò)servlet啟動(dòng)的。在struts2中,struts框架是通過(guò)Filter啟動(dòng)的<filter><filter-name>struts2</filter-name><filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class></filter><filter-mapping><filter-name>struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping>StrutsPrepareAndExecuteFilter中init方法讀取struts.xml完成初始化;讀取struts.xml后,以javaBean的形式保存在內(nèi)存中,處理用戶(hù)請(qǐng)求時(shí)不是每次都讀取web.xmlStruts2第一個(gè)應(yīng)用——helloworld在struts.xml中加入如下配置<packagename=“firstApp”namespace=“/first"extends="struts-default"><actionname="helloworld“ class=“com.blues.struts.HelloAction"><resultname="success">/WEB-INF/hello.jsp</result></action></package>*package:與java包的功能類(lèi)似,通常一組業(yè)務(wù)功能相關(guān)的action放在同一包下;其中name屬性為自定義,主要用于action的繼承;namespace與action的name屬性組合在一起作為訪問(wèn)該包下action的一部分,可以缺省;
struts-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)控制器ActionpublicclassLoginAction{ privateStringusername; privateStringpwd; … publicStringexecute(){ if("blues".equals(this.getUsername())&& "8888".equals(this.getPwd())){ return"success"; }else{ return"error"; } }}配置Action添加視圖上面應(yīng)用處理流程跟蹤用戶(hù)狀態(tài)Struts2中訪問(wèn)HttpSession使用ActionContext類(lèi),該類(lèi)提供一個(gè)getSession方法,但該方法返回一個(gè)Map。為的是將Action類(lèi)與ServletAPI完全分離,來(lái)簡(jiǎn)化Action類(lèi)的測(cè)試。但是Struts2的系列攔截器會(huì)負(fù)責(zé)該Session和HttpSession之間的轉(zhuǎn)換跟蹤用戶(hù)狀態(tài)ActionContext類(lèi)介紹增加數(shù)據(jù)校驗(yàn)ActionSupport類(lèi)是一個(gè)工具類(lèi),它已經(jīng)實(shí)現(xiàn)了Action接口以及Validateable接口,提供了數(shù)據(jù)校驗(yàn)功能。通過(guò)繼承該類(lèi),來(lái)完成數(shù)據(jù)校驗(yàn)功能配置input視圖使用struts2標(biāo)簽輸出驗(yàn)證錯(cuò)誤信息其他驗(yàn)證使用struts2驗(yàn)證框架<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEvalidatorsPUBLIC"-//OpenSymphonyGroup//XWorkValidator1.0.2//EN""/xwork/xwork-validator-1.0.2.dtd"><validators><fieldname="username"><field-validatortype="requiredstring"><messagekey="usernamerequired"></message></field-validator></field></validators>**注意:該文件命名應(yīng)遵守以下規(guī)則:1.ActionName-validation:ActionName就是需要校驗(yàn)的Action類(lèi)名2.該文件與Action類(lèi)放在同一目錄下Struts2包配置詳解<packagename="user"namespace=""extends="struts-default"><actionname="login"class="com.blues.action.LoginAction"><resultname="success">/welcome.jsp</result></action>必填,該名字是被其它包引用時(shí)的KEY可選,定義該包命名空間,用以區(qū)分同名Action可選,包指定繼承的包,可繼承Action、攔截器等Action對(duì)應(yīng)的URL搜索順序如果struts配置文件中只配置了名空間為/test的package,action的name屬性為hello,那么該action的url為:
http://localhost:8080/Struts/test/hello
但是如下路徑也可以訪問(wèn):
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中沒(méi)有指定的action,它會(huì)去沒(méi)有指定namespace的值或者namespace值為””的包去找,如果還找不到則報(bào)錯(cuò)Action配置中的各項(xiàng)默認(rèn)值<actionname="helloworld" class="com.blues.action.HelloAction"method="execute"> <resultname="success">/WEB-INF/hello.jsp</result></action>1.如果沒(méi)指定class,默認(rèn)為ActionSupport2.如果沒(méi)指定method,默認(rèn)執(zhí)行action中execute()方法3.如果沒(méi)指定result的name屬性,默認(rèn)值為success配置文件的包含Strust2視圖轉(zhuǎn)發(fā)流程Struts2支持的結(jié)果類(lèi)型在struts-default.xml文件及struts-plugin.xml中:結(jié)果類(lèi)型說(shuō)明Action中result的轉(zhuǎn)發(fā)類(lèi)型—RedirectRedirect:與dispatcher結(jié)果類(lèi)型相對(duì),dispatcher是將請(qǐng)求Forward到指定的視圖資源,而redirect意味將請(qǐng)求重定向到指定視圖資源特點(diǎn):會(huì)丟失所有的請(qǐng)求參數(shù)、請(qǐng)求屬性以及Action的處理結(jié)果Action中re
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年石家莊理工職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)筆試參考題庫(kù)含詳細(xì)答案解析
- 2026貴州貴陽(yáng)城市綜合發(fā)展有限公司招聘3人參考考試試題及答案解析
- 2026上半年貴州事業(yè)單位聯(lián)考國(guó)家礦山安全監(jiān)察局貴州局直屬事業(yè)單位招聘4人考試重點(diǎn)試題及答案解析
- 2026年安徽糧食工程職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能考試備考題庫(kù)含詳細(xì)答案解析
- 2026年貴州裝備制造職業(yè)學(xué)院?jiǎn)握芯C合素質(zhì)考試參考題庫(kù)含詳細(xì)答案解析
- 2026年自貢職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能考試備考試題含詳細(xì)答案解析
- 2026年河南科技職業(yè)大學(xué)單招職業(yè)技能考試備考試題含詳細(xì)答案解析
- 2026年揚(yáng)州市職業(yè)大學(xué)單招綜合素質(zhì)筆試模擬試題含詳細(xì)答案解析
- 2026年重慶旅游職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能考試備考試題含詳細(xì)答案解析
- 2026年曲靖醫(yī)學(xué)高等專(zhuān)科學(xué)校單招綜合素質(zhì)考試參考題庫(kù)含詳細(xì)答案解析
- 2025年秋季散學(xué)典禮校長(zhǎng)講話:以四馬精神赴新程攜溫暖期許啟寒假
- 2026貴州省黔晟國(guó)有資產(chǎn)經(jīng)營(yíng)有限責(zé)任公司面向社會(huì)招聘中層管理人員2人備考考試試題及答案解析
- 2025年?duì)I養(yǎng)師考試練習(xí)題及答案
- 2026中國(guó)電信四川公用信息產(chǎn)業(yè)有限責(zé)任公司社會(huì)成熟人才招聘?jìng)淇碱}庫(kù)及答案詳解一套
- 2026江蘇省數(shù)據(jù)集團(tuán)數(shù)字科技有限公司招聘考試備考題庫(kù)及答案解析
- 消費(fèi)者權(quán)益保護(hù)與投訴處理手冊(cè)(標(biāo)準(zhǔn)版)
- 南京航空航天大學(xué)飛行器制造工程考試試題及答案
- 規(guī)范廣告宣傳誤差真實(shí)性核查流程
- 注塑模具調(diào)試員聘用協(xié)議
- 2026年工程監(jiān)理招聘面試常見(jiàn)問(wèn)題集
- 航運(yùn)電子商務(wù)行業(yè)發(fā)展前景分析及物流配送體系創(chuàng)新與商業(yè)模式研究
評(píng)論
0/150
提交評(píng)論