日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

struts2总体介绍

發布時間:2025/3/13 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 struts2总体介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??這篇博客開始將總結一下有關框架的知識,在開發中合適的利用框架會使我們的開發效率大大提高。當今比較流行的開源框架:

  • 關注數據流程的MVC框架?Struts1/2, WebWork, Spring MVC……)
  • 關注數據關系的容器框架?Spring, GUICE……)
  • 關注數據操作的持久層框架(HibernateIBatis……)

???????當然了,各個公司可能也有在此基礎上擴展開發的自己使用的框架,但是很多原理的東西都是類似的,所以學習會一套框架,然后能夠舉一反三,幫助我們很快的接受新的知識。

?

?????????? SSHStruts?+Spring +Hibernate)三大框架,今天來總結一下Struts2的一些知識。所謂框架么,其實就像我們蓋房子一樣,需要先搭建支架,然后再進行添磚加瓦,使之達到完美。而在軟件開發中,框架也是一樣的:就是將通用的代碼進行封裝,使我們可以重復利用,達到了高效開發的效果。當然既然已經搭建好的框架,用到我們的系統中,我們就需要學習它,怎么使我們自己獨有的代碼和框架進行完美的結合。因為大家都在用這些優秀的框架,所以框架的學習,其實就是框架規范的學習。有了規范,有個約束,有了統一,才能更加有利于合作的開發。

?

? ? 下邊先看一下Struts2總括知識:還是比較多的,三大框架之一么:


?

?

?

? ? ? ? ?這篇博客先從總體的角度,進行對Struts2的進行宏觀了解。看前三個小標題:

?

?????????一,Struts2簡介:

?????? 1,來由:Struts(金屬支架),在程序中表示起支撐作用的通用程序代碼,Struts2是在Struts1框架的基礎上融合了WebWork優秀框架升級得到的。

?

?????? 2,解釋:Struts2框架是一個輕量級的MVC流程框架,輕量級是指程序的代碼不是很多,運行時占用的資源不是很多,MVC流程框架就是說它是支持分層開發,控制數據的流程,從哪里來,到那里去,怎么來,怎么去的這樣一個框架;

?

?????????????? 3,升級的改善:

?????????????????????? Struts1的缺點:

  • struts框架基于servlet進行開發的,所以servlet的問題在這個框架中都能體現出來
  • struts框架的流程是固定的,想要擴展業務流程非常的不方便。
  • 只支持動態視圖JSP展現數據,對于現在的SEO(搜索引擎優化)支持不好
  • ????????????????? Struts2框架改善的地方:

  • 核心基于Filter
  • 流程可以動態擴展
  • 多例創建對象
  • 支持多種視圖展現技術(JSPFreemarkerVolicity
  • ?

    ?

    ???????二,簡單對Struts2了解后,看一下如何進行Strut2的搭建:

    ???????????? 1,新建Web項目:進行必備Jar包的拷貝,放到lib目錄以便項目的引用,這個我們通過apache官方網站下載后,可以參照里邊的實例:

    ?

    ? ? ? ? ? ? ?2,拷貝框架的核心配置文件Struts.xml,放到src目錄下,保留一個基本配置即可,這里沒網的話需要我們自己配置一下xml文件對應的DTD或者schema文件,方便我們后期的編寫:

    ?

    [html]?view plaincopyprint?
  • <?xml?version="1.0"?encoding="UTF-8"??>??
  • <!DOCTYPE?struts?PUBLIC??
  • ????"-//Apache?Software?Foundation//DTD?Struts?Configuration?2.0//EN"??
  • ????"http://struts.apache.org/dtds/struts-2.0.dtd">??
  • ??
  • <struts>???
  • </struts>??
  • ?

    ?


    ? ? ? ? ? 3,然后在我們的web.xml文件中進行核心調度器的配置,這里我們一般過濾所有訪問路徑即可:

    ?

    [html]?view plaincopyprint?
  • ?????????<!--?配置框架的核心調度器?-->??
  • ????????????<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>??


  • ?

    ?

    ? ? ? ? ??這樣我們的Struts2框架就算搭建出來了,我們就可以使用框架進行開發了,當然了如何使用框架,如何很得心應手的運用框架,還需要不斷的使用才行。

    ?

    ? ? ? ? ??三,Struts2框架的源碼分析,這也是我當時學習最頭疼,但是最讓我最感興趣的地方,因為這些源碼才真正將一些神奇的功能進行了解答:(由于源碼步驟過多,而且學習程度不夠深,這里簡單說一下大概步驟)

    ?

    ? ? ? ? ? ? 1Tomcat等服務器啟動時,框架做的事情:——>反射創建了StrutsPrepareAndExecuteFilter對象,相當于使用Struts2的一個準備對象吧,——>然后創建了Dispatcher(核心調度器),——>通過此對象,加載對象默認的配置文件(org/apache/struts2/default.properties),解析了默認的xml文件(struts-default.xml等),——>并試圖加載我們編寫的xml文件或者屬性文件,——>并創建了我們需要用的PrepareOperations和ExecuteOperations對象。

    ??

    ????????? 2,當我們訪問jsp頁面時,這里會進行頁面編碼設置,反射創建我們的DefaultActionMapper對象,進行對URI的獲取,解析,封裝,由于是直接訪問的jsp頁面,也就是靜態的,直接跳轉,相對來說比較簡單。

    ?

    ????????? 3,發送actin請求時,這里比較麻煩,——>利用DefaultActionMapper,進行對URI的獲取解析,例如訪問那個類,那個方法,是不是動態訪問(帶有!號),有什么特殊處理(有.x? .y結尾等)。進行相關信息的解析后,——>Dispatcher(核心調度器)反射創建StrutsActionProxyFactory代理對象工廠,這里在反射創建我們要訪問的類時,——>模仿了動態代理,創建了代理對象StrutsActionProxy和擴展對象DefaultActionInvocation,——>擴展對象又創建了我們的目標對象工廠,——>然后反射創建了我們想要訪問的目標對象action。——>然后通過調用代理對象,執行擴展對象中的方法,——>執行我們框架默認的18個攔截器,——>反射調用訪問action方法,——>獲取執行后的結果result,——>最后進行相關界面或者action的指向。

    ?

    ??????????????這里自我感覺是挺麻煩的,應該畫張圖更好,可是步驟太多,不知道圖得多大,所以簡單的文件描述了一下重要的過程,忽略了很多。想說的是要重點掌握幾個文件:Struts-default.xml配置文件,default.properties默認的屬性文件,dispatcher核心調度器,還有就是模擬動態代理訪問action的代理對象(StrutsActionProxy)和擴展對象(DefaultActionInvocation),當然了解越多越好,這樣才能幫助我們更好的掌握這個框架,更有利于我們對其進行靈活運用,擴展,更有修改……

    ?

    ?

    ? ? ? ? ? ?Struts2框架大致容貌是這樣的,我認為學習這些框架重點不是死記那些規范,那些規則,重要的是我們學習這個框架的思想,這樣我們遇到新的框架時才不至于束手無策。就像我們拆筆記本電腦時,重要的不是我們記住那么部件在那,先裝那個,后裝那個;而是我們電腦的組成部分,電腦的組裝思路。因為每一個牌子的電腦的內部結構都是有差異的,但是每個牌子的電腦都會有cpu,cpu安裝都需要硅膠等等,知道原理本質,我們才能舉一反三,融會貫通。

    ?

    轉載于:https://www.cnblogs.com/xwlhyy1072552712/p/4793778.html

    總結

    以上是生活随笔為你收集整理的struts2总体介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。