版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
Struts2
Spring
Hibernate入門第1講主講:黃錫波是最辛苦的一門課SSH框架技術是兩年課程的大集成、大總結是真正開發(fā)企業(yè)級的J2EE網(wǎng)站的技術是最辛苦的一門課,大家要有思想準備理由:必要內(nèi)容太多,90學時僅可講完基礎辛苦1:實訓多,每周有任務卡。辛苦2:測驗多,每周有測驗。辛苦3:考勤嚴,每次課需電子簽到(SSH簽到網(wǎng)站)。辛苦4:課前要預習,預習是學本事最好方法。辛苦5:以項目為導向,課程結束就拿自做項目面試。辛苦6:SSH不難,難的是靈活應用兩年課程知識點。辛苦7:就好業(yè)壓力大,全力以赴才行,也許搭上周六日。辛苦8:枯燥,學本事需要自律。辛苦9:寂寞,學本事需要定力。辛苦10:無聊,調(diào)式Bug,錯誤信息也許比源程序還長且是英文的,學本事需要耐力。。。。。。是最辛苦的一門課所謂項目導向,是學習軟件技術唯一的方法,就是為做項目而學習技術。為學技術而學技術,一定學不到的。項目功能1……功能2功能n思路1:項目=n個功能的集合,項目大小是指開發(fā)時間的長短而已,10天開發(fā)1個功能,100天也許就有10個功能了,有10個功能的項目不算小了。因此,邊學SSH,邊改造你原來的小網(wǎng)站,是最快的學習方法,到課程結束,你基本就能開發(fā)有10個功能的網(wǎng)站了。思路2:你開發(fā)的網(wǎng)站拿去面試,就說明你有基本的項目經(jīng)驗了。思路3:教材的案例很不錯的,多閱讀,用來參考開發(fā)你自己的網(wǎng)站。思路4:QQ群有幾個有源代碼的項目案例,多分析參考開發(fā)自己的網(wǎng)站。思路5:很多人說我不知道開發(fā)什么項目,我的觀點是你真的用心學習的話就一定懂的,如小的不得了“SSH上課簽到”,“SSH成績查詢”,“SSH播放視頻”等小網(wǎng)站,小功能開發(fā)的多了就是一個大項目。在企業(yè)也是一個一個功能開發(fā)的,過半年就是一個大網(wǎng)站了?;仡?何謂動態(tài)網(wǎng)頁?所謂“動態(tài)”,并不是指那幾個放在網(wǎng)頁上的GIF,Flash等動畫,動態(tài)網(wǎng)頁技術有以下幾個特點:1,“交互性”即網(wǎng)頁會根據(jù)用戶的要求和選擇而動態(tài)改變和響應,將瀏覽器作為客戶端界面。2,“自動更新”即無須手動地更新HTML文檔,便會自動生成新的頁面,可以大大節(jié)省工作量。3,“因時因人而變”,即當不同的時間,不同的人訪問同一網(wǎng)址時會產(chǎn)生不同的頁面。目前主流的動態(tài)網(wǎng)頁技術有JSP,ASP,PHP等。動態(tài)網(wǎng)頁的核心技術是:(1)前臺如何動態(tài)地獲取后臺數(shù)據(jù)?(2)前臺提交數(shù)據(jù)時,后臺如何正確地捕獲?其實JSP,ASP,PHP三門技術在核心技術的應用上是非常非常類似的,懂JSP,再學習PHP,ASP不會超過一個月,反過來就難了(Java語言最少一年的編程經(jīng)歷)。Web技術的發(fā)展Java程序設計-學期1數(shù)據(jù)結構-學期2計算機網(wǎng)絡技術-學期3網(wǎng)絡編程技術-學期3動態(tài)Web技術-學期4SQL-學期2SSH-學期5軟件測試技術-學期5HTML/CSS-學期3Flash動畫-學期3計算機圖形圖像-學期4JavaScript-學期4富客戶技術-學期4/5Struts2(OGNL)–學期5軟件測試技術-學期5Web技術的發(fā)展Model1與Model2Model1整個web應用幾乎全部由JSP頁面組成,JSP頁面接受處理客戶端請求,對請求處理后直接做出響應。用少量javaBean來處理數(shù)據(jù)庫連接等操作Model2基于MVC設計模式,Servlet作為前端控制器,負責接受客戶端發(fā)送的請求,在servlet中只包含控制邏輯,然后調(diào)用后端JavaBean來完成實際的邏輯處理,最后轉(zhuǎn)發(fā)到響應的JSPMVCMVC并不是java語言所特有的設計思想,它是所有面向?qū)ο蟪绦蛟O計語言都應該遵守的規(guī)范Model(模型)、View(視圖)、Controller(控制器)這三個部分以最少的耦合協(xié)同工作,以提高應用的可擴展性及可維護性Struts2簡介 Struts2以WebWork為核心,采用攔截器的機制來處理用戶的請求,這樣的設計也使得業(yè)務邏輯控制器能夠與ServletAPI完全脫離開,所以Struts2可以理解為WebWork的更新產(chǎn)品Struts2體系概圖Struts2的優(yōu)點1.設計上不依賴于ServletAPI和StrutsAPIpublicclassmyActionextendsAction{publicActionForwardexcute(ActionMapping mapping,ActionFormform,HttpServletRequest request,HttpServletResponseresponse)throws Exception{…}}2.使用大量的攔截器3.提供了類型轉(zhuǎn)換器(這點在struts1中沒有)4.支持多種表現(xiàn)層技術如:JSP/freeMarker5.可以對指定方法進行校驗6.提供全局范圍、包范圍和Action范圍的國際化資源文件管理搭建Struts2開發(fā)環(huán)境導入相關jar文件編寫Struts2的配置文件在web.xml中加入Struts2框架的啟動配置Struts2常用jar包不同應用需要的jar包是不同的,開發(fā)struts2程序需要的jar至少應具備以下jar包:Struts2-core-2.x.x.jar:struts2框架核心類庫Xwork-2.x.x.jar:xwork類庫Struts2在其上構建Ognl-2.6.x.jar:對象導航語言,用來讀寫對象的屬性Freemarker-2.3.x.jar:Struts2UI標簽Commons-logging-1.1.x.jar:日志記錄功能jarCommons-fileupload-1.2.1.jar:文件上傳組件commons-io-1.3.2.jar:文件上傳組件Struts2應用的配置文件默認配置文件為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中的啟動配置Struts1中,struts框架是通過servlet啟動的。在struts2中,struts框架是通過Filter啟動的<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)存中,處理用戶請求時不是每次都讀取web.xmlStruts2第一個應用——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包的功能類似,通常一組業(yè)務功能相關的action放在同一包下;其中name屬性為自定義,主要用于action的繼承;namespace與action的name屬性組合在一起作為訪問該包下action的一部分,可以缺省;
struts-default是struts2的核心包,定義了struts2的核心功能,通常情況下都要繼承該包Struts2處理流程1.瀏覽器發(fā)送請求2.核心控制器FileterDispatcher根據(jù)請求決定調(diào)用合適的Action3.WebWork的攔截器鏈自動對請求應用通用功能,如validaton等4.回調(diào)Action的execute方法5.Action的execute方法處理結果信息被輸出到瀏覽器中一個簡單的提交功能一個簡單的提交功能實現(xiàn)控制器ActionpublicclassLoginAction{ privateStringusername; privateStringpwd; … publicStringexecute(){ if("blues".equals(this.getUsername())&& "8888".equals(this.getPwd())){ return"success"; }else{ return"error"; } }}配置Action添加視圖上面應用處理流程跟蹤用戶狀態(tài)Struts2中訪問HttpSession使用ActionContext類,該類提供一個getSession方法,但該方法返回一個Map。為的是將Action類與ServletAPI完全分離,來簡化Action類的測試。但是Struts2的系列攔截器會負責該Session和HttpSession之間的轉(zhuǎn)換跟蹤用戶狀態(tài)ActionContext類介紹增加數(shù)據(jù)校驗ActionSupport類是一個工具類,它已經(jīng)實現(xiàn)了Action接口以及Validateable接口,提供了數(shù)據(jù)校驗功能。通過繼承該類,來完成數(shù)據(jù)校驗功能配置input視圖使用struts2標簽輸出驗證錯誤信息其他驗證使用struts2驗證框架<?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>**注意:該文件命名應遵守以下規(guī)則:1.ActionName-validation:ActionName就是需要校驗的Action類名2.該文件與Action類放在同一目錄下Struts2包配置詳解<packagename="user"namespace=""extends="struts-default"><actionname="login"class="com.blues.action.LoginAction"><resultname="success">/welcome.jsp</result></action>必填,該名字是被其它包引用時的KEY可選,定義該包命名空間,用以區(qū)分同名Action可選,包指定繼承的包,可繼承Action、攔截器等Action對應的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…
搜索會按照逐級向上的順序搜索直到找到匹配的Action對應的URL搜索順序如果對應的namespace中沒有指定的action,它會去沒有指定namespace的值或者namespace值為””的包去找,如果還找不到則報錯Action配置中的各項默認值<actionname="helloworld" class="com.blues.action.HelloAction"method="execute"> <resultname="success">/WEB-INF/hello.jsp</result></action>1.如果沒指定class,默認為ActionSupport2.如果沒指定method,默認執(zhí)行action中execute()方法3.如果沒指定result的name屬性,默認值為success配置文件的包含Strust2視圖轉(zhuǎn)發(fā)流程Struts2支持的結果類型在struts-default.xml文件及struts-plugin.xml中:結果類型說明Action中result的轉(zhuǎn)發(fā)類型—RedirectRedirect:與dispatcher結果類型相對,dispatcher是將請求Forward到指定的視圖資源,而redirect意味將請求重定向到指定視圖資源特點:會丟失所有的請求參數(shù)、請求屬性以及Action的處理結果Action中re
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度消防檢測服務外包合同勞動廳制定2篇
- 2025年度石材行業(yè)市場調(diào)查與分析合同3篇
- 二零二五年度外墻巖棉板保溫材料采購、施工及質(zhì)量監(jiān)管合同2篇
- 二零二五年度旅游行業(yè)SaaS解決方案銷售及服務協(xié)議3篇
- 二零二五年度波形護欄安裝及售后保養(yǎng)服務合同3篇
- 二零二五年度廣告發(fā)布合同:某品牌在央視春晚廣告投放3篇
- 編織紅繩課程設計
- 二零二五年度建筑膩子產(chǎn)品進出口代理合同3篇
- 二零二五年度彩鋼房租賃與投資合作協(xié)議3篇
- 課程設計怎么形容成語
- 房屋租賃管理條例2024年
- 《文獻檢索與論文寫作》教學大綱思政版
- 高中數(shù)學人教A版必修第一冊 全冊 思維導圖
- 【基于自由現(xiàn)金流貼現(xiàn)法的企業(yè)估值的案例探析3300字(論文)】
- 鑄件工藝性分析報告
- 船舶維修搶修方案
- 九年級初三中考物理綜合復習測試卷3套(含答案)
- (正式版)JTT 1218.5-2024 城市軌道交通運營設備維修與更新技術規(guī)范 第5部分:通信
- 2023年人教版五年級上冊語文期末考試題(加答案)
- 新中國史智慧樹知到期末考試答案2024年
- 基于物聯(lián)網(wǎng)的智能衣柜
評論
0/150
提交評論