版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Java2EnterpriseSSHFramework1123Struts45PartPartⅠ 式,這種新程序開發(fā)模式稱為瀏覽器/服務器(B/S)模式。 靜態(tài)網(wǎng)頁是指沒有數(shù)據(jù)庫、不含程序、不可交互和不超文本標示語言。文本是由命令組成的描述格、等。 gateintergace)通用網(wǎng)關接口的簡稱。它 Perl(PracticalExtractionandReportBourne 或者Tcl(ToolCommandPHP(HypertextC和流編寫語言,以至于一般的“cgi程序”就是Perl程序。 print語句來實現(xiàn),開發(fā)者幾乎無法從程序中看出最后輸 系出名門 和 標記、普通文本、命令以及件等。利用可以向網(wǎng)頁中添加交互式內容(如表單),也可以創(chuàng)化的部分加入的了一些特有的,這些又稱為 草根中走出的巨人 的縮寫。是一種開放源代碼的編程語言,與和Java、Perl以及自創(chuàng)新的語法。具有非常強大的功 Scriptlet)和JSP 擴展名就是.jsp。 和Scriptlets, Apache、JBoss和廠商提 模型-視圖-控制器b 模型的變化-機制。 什么是使 ObjectModel進行動態(tài)顯示和交互Ajax是由JesseJamesGarrett創(chuàng)造的,稱它為 +異步JavaScript和 Explorer中首次引入,它是MooTools,Prototype,
Part工作原理,Web.xml,基本語法,編譯指令, ,內置對象,Servlet,Filter,Listener.PartⅡ學習 否正確,將JSP頁面轉換為Servlet(Servlet就是用JavaServlet源文件生成class文件,這一階段是轉換階段。 在上發(fā)布應用之前,首先要了解 解讀Java應用通過一個基于的發(fā)布描述符文件來配置(1)Servlet的定義(2)Servlet的初始化參數(shù)(3)Servlet以及JSP的映射(4)Filter的定義 e文 (7)資 (8)環(huán)境變量的定義 網(wǎng)頁數(shù)據(jù)就是JSP服務器不處理的部分,例如的內 編譯指令主要用來提供整個JSP網(wǎng)頁相關的信息,并且用令:page、include和taglib。 所的的各個頁面之間瀏覽時,這個applicationJSP個內置對象的范圍(scope),分別為pageContext<request< session<application都具有方法setAttribute( )和getAttribute( )。個Servlet實例,相當于這個JSP產生的Servlet類的this,可以通過對象實例的屬性和函數(shù)。在JSP頁面中,out對象是javax.jsp.JspWriter的一個實例,是一個輸出config表示一個javax.servlet.ServletConfig對象。該對象用于存取Servlet實例的初始化參數(shù)。Servlet
b器并不是Servlet,他們并不實際創(chuàng)建一個請求。他們是請求到達一個Servlet前的預處理程序,在響應離開Servlet后的后處理程序。就像你將在后面的例子中看到器器可以客戶端的請求、服務端的操作等。通過監(jiān) 增加一個HttpSession時,給人數(shù)加1。器還有一生命周期的。編寫器需要實現(xiàn)相應的接口,常用的接口: PartStruts體系結構,Action,Result,Interceptors,Tags,EL,OGNL,Theme,View, PartⅢStrutsStruts這個名字來源于在建筑和舊式飛機中使用的支持金 好地幫助Java開發(fā)者利用J2EE開發(fā)應用。Struts主要采用Servlet和JSP技術來實現(xiàn),把Servlet、JSP、自定義發(fā)的,也是致力于組件化和代碼重用的J2EE框架,后來Struts與兩合并,稱為Sturts2??蚣芸梢詷O大地提高開發(fā)效率,Rickard 的過濾器并把所有的請求(/*)映射到這個過濾器。<web-<filter-name>struts2</filter-<filter- <filter-name>struts2</filter-<url-pattern>/*</url-</filter- </web-客戶端提起一個(HttpServletRequest)請求,即在瀏覽器中輸。請求被提交到一系列()過濾器等)、。 示例程序——login.jsp(1)<s:form<table<td><s:submit <td><s:reset示例程序importcom.annlee.constant.StrutsConstant;publicclassLoginActionextendsActionSupport{privateStringusername;privateStringpassword;{return}{this.username=}publicString{
publicStringexecute()throws{if{put("user",}{}}}return}{this.password=}示例程序<web-appversion="2.4"xmlns="h <filter-name>struts2</filter-<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter- <filter-name>struts2</filter-<url-pattern>/*</url- 示例程序<!DOCTYPEstruts"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN" <actionname="login"<result<result<result示例程序perties(5)<!DOCTYPEvalidatorsPUBLIC"-//OpenSymphonyGroup//XWorkValidator <field<field-validator<message<field<field-validator<messageAction是Struts2編程的部分,在模式中擔任控制 Property-DrivenAction將直接用自己的字段來充當性和它set、get方法。它一般用在頁面表單比較簡單的情 口,它是所有action執(zhí)行結果的通用接口。在struts- 頁面跳轉DispatcherResult是最常用的一種result,也是Struts2默認的result,稱為通用result。action執(zhí)行完后,請求 <resultname="success"<paramRedirectResult與DispatcherResult作用類似,也是實ChainResult是一種result類型,它基于自己的器stack(堆棧)和result調用一個action,這樣允許一個 個ChainResult,然后通過一個ChainingInterceptor攔器 請求通過一個或多個Interceptor。多個器組合在一器棧InterceptorStack)。interceptor 化相應的interceptor對象,然后串成一個列表(list),最后一個 Struts2 ,還包 <%@taglibprefix="s"uri="/struts- 被設置為字符串的,然后它們會解析%{ 大括號之間的內容都會基于valuestack求值。注意3個規(guī)
“%{”開始并以“} ”結束,這些字符在對表達式求 模板 Struts提供的Html ):小段代碼,在JSP、 te(模板):一個文件,通常使用JSP或者Marker編寫,能被特定 tags)輸出 ):一系列tem tes打包在一起, result中可以配置使用 模板是基 和模 來裝載的。模 使struts.ui.tem teDir屬性,在perties里來定義(缺 的兩個位置將會被搜索(按照順序) te.ftl(2)在classpath里 te.ftl選 上 屬性。如<s:textfield 的 屬性設置。這可以輕松地在幾個選擇的地方使用 會話范圍內的以選 (5)session會話范圍 (6)application會話范圍 內的struts.ui.theme 屬性(缺省是如果想要改變整個應用 ,調整pertiesStruts2自帶 取數(shù)據(jù)所自定義的語言。開始EL只能在JSTL中使用, !象圖形導航語言)??梢詮膆ttp://獲取有一個根對象的概念(在Struts2中,它就是中(作為上下文 ),包括session、application、request、attr這些。這些對象與根對象無關,它們只是存在于context的一邊(保存在context中)。所 這些對象時需要使用#來告訴不要在根對 result都是為了整合不同的視圖技術而設計的。1.Velocity是一個基于java的模板引擎(temteengine)2.marker也是一個模板引擎,允許JavaServlet保持圖形設模板用servlet提供的數(shù)據(jù)動態(tài)地生成HTML。4.XSLTResult用XSLT來轉換action對象到XML在Struts中使 Marker允許Javaservlet保封完成的。模板用servlet提供的數(shù)據(jù)動態(tài)地生成 Marker編寫的文件后綴名為“.ftl”。在struts中對 Marker提供了完美的支持,struts- Marker類型的result:<action<result marker">test- 錄application)、classpath。這個順序對于在完全編譯的jar中提供模版很理想,但是也同時支持在應 中定義這些模版來覆蓋jar中的模版文件。事實上,這就是為什么可以覆蓋struts中默認的UItags和Tags的原理。 variable)指定一個路徑(文件系統(tǒng)中的任意一個 )。 如,在JSP中可能這樣創(chuàng)建一個form:<s:form <s:textfieldlabel="Firstname"<s:submit入到工程的classpath。其次,struts-default.xml <actionname=“test” <resultname="success"(1)值棧(value(2)action上下文Velocity是提供的一般Tag的擴展.只要簡單的了解這些的方式:#sxxx(...)...end(),就可以馬上開始使用了。注意:“#s”后面是沒空格的,它與名稱直接連在一起(雖然不會發(fā)生什么但在閱讀上實在很不舒服,而在Struts中使用java開源報表庫。它將.jrxml(XML源文件)編譯為.jasper(=編譯后版本)文件,它可以被轉換為多種格式輸出、、XLS和dist/jasperreports-X.jar mons-*.jar (all the-exceptforlogging)lib/itext-X.jar gettersetter方法的類,可以作為值對象來使用)。.jasper文件。這些模版將會被用來設計結果報表。對于ireport)來定義。將文件到工程的 和lastName字段(這兩個屬性來自 .class)。這配置struts.xml。Jasper類型的result不是struts2缺省就提供了的,而是作為一個plugin代 程序的技術方面。Struts的 java.util.Local類中,而action則通過一個定義與PublicLocalegetLocale()ActionContext獲得locale的值。Struts2通過查詢?yōu)榱私o不同的地區(qū)提供不同的字符串信息,需要一個應用程序的源文件來為給定的locale找到正確的字符串信息。幸運的是,以Java.util.ResourceBundle抽象類的方式提供了這些功能。帶來了資源包的實現(xiàn):和java.util.ListResouceBundle。這兩個類會自動加載含有 信息的屬性文件(*.properties文件)。當被調用的時候,會查找正確的名字,如 。資源包按照下面的順序搜索(1)ActionCperties(2)BaseCperties (象從第一步重復執(zhí)(5)perties(類所在 和每個 直到 。自(7)全局資源屬性(perties里定義(1)通過配置屬性或者編程的方式默認資源包的功能。修改perties文件中的:struts.custom.i18n.resources.i18n”); 。 屬性中使用 PartⅣJava數(shù)據(jù)庫最原始的方法是通過來完成的。(JavaDataBaseConnectivity,java數(shù)據(jù)庫連接)是一種用于執(zhí)行語句的JavaAPI,可以為多種關系數(shù)據(jù)庫提供統(tǒng)一,它由一組用Java語言編寫的類和接口組java.sql包提供了JDBC Connection類:負責 將傳入的命令事先編好等待使用,當有單一的指 建立數(shù)據(jù)庫連接,獲得Connection對象根據(jù)SQL語句建立Statement對象或PreparedStatement對象用Connection對象執(zhí)行SQL語句,獲得結果集ResultSet對象 結果集ResultSet對象中的數(shù)據(jù),保存某個Java對象中如果是修改或者刪除操作需要對數(shù)據(jù)發(fā)commit命令最后依次關閉各個Statement對象和Connection對象的全稱是Object/RelationMap和數(shù)據(jù)庫的橋梁。并不是一種具體的產品,而是一類 為了解決的問題,Sun公司首先推出了EntityEJB的解響了EntityEJB的實際應用。 它僅僅停留在SQLMap O/RMap 體系結構(Architecture) 持久化類(Persistent 連接池C3P0,它位于lib Session類對于Hibernate開發(fā)人員來說是一個最重要的和CriteriaCallback類。當一些有用的 發(fā)生時――例如持久對象 session.save(user); <hibernate-map的表所在的和/或catalog名稱。 。class設定標識符 的類名.可寫它的完整類名如: 作為主鍵,而不是使用一個鍵。 括它們的包裝類)和以及對應的標準類型。集合類(Collections)映射Java提供了豐富的集合類庫,它們可分為3List:集合中的對象按索引位置排序,可以有重復對象,允許按照對Hibernate允許把以上3種Java。 過load()或get()函數(shù)來獲取持久化對象,這里就需要使Hibernate提供了完善的按條件(QueryByCriteria,的功能。也可以用本地SQL(native描述查詢,Hibernate額外提供了將結果集(result 直接使用些數(shù)據(jù)庫的特性,或者用于將原有的JDBC應用遷移到 使用注釋配置Java注釋的更為巧妙的新方法。借助新的 文件,注釋直接嵌入到Java類中,并提供一種強大及靈 出顯示功能,最近發(fā)布的JavaIDE也為其提供了有力的支規(guī)范旨在提供一種標準化的Java持久性機制。由于Spring的是個輕量級(Lightweight),實現(xiàn)了 ofControl)模式的容器,基于此所建立的測試(Testability)的特性,使得整個應用程序在架構 JavaMail1.4,JAX-S2.0等)。 提取 基于注釋的Servlet和Portlet 控制器風格配置擴展 認可的支持,支持6r機制。Spring框架的jar文件,兼容AOP,Spring,Springb模塊,SpringC框架。什么是Spring包括兩個重要的概念:IoC(Inversionof Injection, 什么是何謂輕量級所謂“輕量級”是相對于“重量級”來講的。在Spring 化”了企業(yè)級應用的開發(fā)。這里的“簡化”是相對的。 b 透明的把P集成到軟件中去。 的是那些如果選擇Spring或者其他的使用特定的J2EEAPIs戶非常簡單地看到這些class的JavaBean的屬性。 口代替classes減弱編程成本,降至最小。Spring的設計使依靠很少的APIs建立應用成為可能。在Spring應用中應用構架。可以選擇作為或者localEJBs擴展業(yè)務 者像Hibernate一樣的O/Rmap ofControl,IoC)原理。Spring框架所提供 在Spring中,BeanFactory是IoC容器的接口。它的職 L數(shù)。而beanfactory將通過調用beandefintionreader從多個文件中bean定義。獲取ObjectgetBean(String):返回以給定名字 ,否則將返回一個新建ObjectgetBean(String,Class):返回給定名稱的bean實例,ClassgetType(Stringname):返回給定名稱的bean的ClassbooleanisSingleton(String):判斷給定名稱的bean定義(或String[]getAliases(String):返回給定bean名稱的所有別名配置對象通過調用staticfactory方法來實例化bean,而不是使用 對bean采用統(tǒng)一名約定將會使配置更加簡單易懂。而且在使用Spring時,如果要發(fā)通知(advice)給與一組名稱相關的bean時,這種簡單名方式將會帶來額外的果一個bean有多個id,那么其他的id在本質上將被認為是別名。為了提供多個名稱,需要通過alias屬性來加以指定。而 <aliasname="fromName" ofControl,IoC)名字的由來。Setter通過調用無參構造函數(shù)或無參static工廠方法實例化set()方法(又被稱為setter)的DI injection,也就是 注使用Constructorinjection,由于使用Constructorinjection時并不如Setter injection時擁有setXXX()這其它的協(xié)作者 性的值設置為對容器中的另外一個bean的。該 使用 對于像陣列、javautilList、java.util.Set、java.util.Map等集合實例,在注入前必須填充入一些實它卻比普通的JavaBean多了很多特性。并且使用者不但象實例的一張“處方(recipe)”或者模板。就如class建對象的作用域,而不必在JavaClass級定義作用域。Spring支持五種作用域(其中有三種只能用在基于的SpringApplicationContext)。Spring提供了幾個標志接口(markerinterface),這些 利用J2EE應用的一部分自動啟動。當然仍然可以采用編程 利用 singleton提前進行實例化。提前實例化意味著作為配置所有的singletonbean。通常情況下這是件好事,因個延遲初始化bean將告訴IoC 同的是,ContextLoaderListener不能在與Servlet2.2兼Spring2.5順應這種趨勢,提供了完全基于注釋配置Bean、裝配BeanSpringIoC替換原來基于的配置。在本例中有3個類,它們分別是Office、Car和Boss,使用容car和office這兩個私有成員變量進行自動注入。所以對成員變量使用@Autowired后,甚至可以將sette方法(setCar()和setOffice())從Boss中刪除在Setter由于Boss()構造函數(shù)有兩個入?yún)?,分別是car和office,為Boss(Carcar,Office office)的入?yún)韯?chuàng)建Boss在默認情況下使用注釋進行自動注入時, 匹配的Bean。@Autowired(requiredfalse),這等于告訴Spring:在找不到匹配BeanSpring不但支持自己定義的@Autowired的注釋,還支持幾個由規(guī)的動注入,面@Resource認按自動注入罷了。 注釋就 Spring2.0引入了一種更加簡單并且更強大的方式來自定SpringSpring用純Java實現(xiàn),它不需要專門的編譯過程。Spring不需要控制類裝載器層次,因此它適用于J2EE 響到SpringOAPI的情況下加入對成員變量器支持,但Spring并沒有實現(xiàn)成員變量器。配置在Spring2.0中最激動人心的增強之一是關于它更@AspectJ使用了Java5的注解,可以將切面 Java類。AspectJ5發(fā)布的AspectJproject 種@AspectJ風格。Spring2.0使用了和AspectJ5一樣的注解,使用了AspectJ提供的一個庫來做切點(Spring并不依賴于AspectJ
溫馨提示
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度環(huán)保材料研發(fā)與生產合作合同范本4篇
- 2025版旅游度假區(qū)租賃與旅游服務合作協(xié)議3篇
- 2025年度智能交通系統(tǒng)保密管理與服務合同
- 二零二五年度科技型中小企業(yè)貸款合同
- 2025年度知識產權授權委托書簽訂協(xié)議
- 2025年度門面出租合同終止與租賃合同終止后合同解除及違約賠償協(xié)議
- 2025年度銀行存款賬戶遠程開戶服務協(xié)議
- 2025年度私人房產使用權轉讓與智能家居系統(tǒng)安裝合同
- 二零二五年度農業(yè)科技園區(qū)用地租賃合同
- 二零二五年度酒店員工福利與社會保障聘用合同
- 2024年全國體育專業(yè)單獨招生考試數(shù)學試卷試題真題(含答案)
- 北師大版小學三年級上冊數(shù)學第五單元《周長》測試卷(含答案)
- DB45T 1950-2019 對葉百部生產技術規(guī)程
- 2025屆河北省衡水市衡水中學高考仿真模擬英語試卷含解析
- 新修訂《保密法》知識考試題及答案
- 電工基礎知識培訓課程
- 住宅樓安全性檢測鑒定方案
- 廣東省潮州市潮安區(qū)2023-2024學年五年級上學期期末考試數(shù)學試題
- 市政道路及設施零星養(yǎng)護服務技術方案(技術標)
- 《論語》學而篇-第一課件
- 《寫美食有方法》課件
評論
0/150
提交評論