框架 是 實現部分功能的代碼 (半成品),使用框架簡化企業級軟件開發 ,提升開發效率。學習框架 ,清楚的知道框架能作什麼? 還有哪些工做須要本身編碼實現 ?前端
Struts 2是Struts的下一代產品,是在 struts 1和WebWork的技術基礎上進行了合併的全新的Struts 2框架。
其全新的Struts 2的體系結構與Struts 1的體系結構差異巨大。Struts 2以WebWork爲核心
struts2=struts1+webwork;
struts2框架是apache產品。
struts2是一個標準的mvc框架。 javaweb中的model2模式就是一個mvc模式。 model2=servlet+jsp+javaBean
struts2框架是在javaweb開發中使用的。
使用struts2框架,能夠簡化咱們的web開發,而且下降程序的耦合度。
XWork---它是webwork核心
Xwork提供了不少核心功能:前端攔截機(interceptor),運行時表單屬性驗證,類型轉換,
強大的表達式語言(OGNL – the Object Graph Navigation Language),
IoC(Inversion of Control反轉控制)容器等java
下載struts2的jar包 struts-2.3.15.1-all 版本.
struts2的目錄結構:
apps: 例子程序
docs:文檔
lib:struts2框架所應用的jar以及插件包
src:源代碼
core 它是struts2的源代碼
xwork-core struts2底層使用了xwork,xwork的源代碼
注意:在struts2開發,通常狀況下最少導入的jar包,去apps下的struts2-blank(將struts2-blank.war改成struts2-blank.rar解壓)示例程序中copyweb
<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框架流程能夠執行。
名稱:struts.xml
位置:src下(classes下)apache
要求,在HelloAction類中建立一個返回值是String類型的方法,注意,無參數。
public String say(){
return "good";
}瀏覽器
1 <package name="default" namespace="/" extends="struts-default"> 2 <action name="hello" class="cn.itcast.action.HelloAction" 3 method="say"> 4 <result name="good">/hello.jsp</result> 5 </action> 6 </package>
<a href="${pageContext.request.contextPath}/hello">第一次使用struts2</a>
在地址欄中輸入:http://localhost/struts2_day01/index.jsp 訪問鏈接,就能夠看到
HelloAction類中的say方法執行了,也跳轉到了hello.jsp.緩存
請求 ---- StrutsPrepareAndExecuteFilter 核心控制器 ----- Interceptors 攔截器(實現代碼功能 ) ----- Action 的execute --- 結果頁面 Result
* 攔截器 在 struts-default.xml定義
* 執行攔截器 是 defaultStack 中引用攔截器 mvc
---- 經過源代碼級別斷點調試,證實攔截器是執行 app
若是安裝Aptana編輯器 ,請不要用Aptana自帶xml編輯器 編寫struts2配置文件
struts.xml提示來自於 DTD約束,
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
若是能夠上網,自動緩存dtd,提供提示功能
若是不能上網,也能夠配置本地DTD提示 框架
*** 導入DTD時,應該和配置DTD版本一致 jsp
若是是com.opensymphony.xxx 在xwork-core下
若是是org.apache.struts2 在core下
提供在瀏覽器中查看 struts2 配置加載狀況
將解壓struts2/lib/struts2-config-browser-plugin-2.3.7.jar 複製WEB-INF/lib下
訪問 http://localhost/struts2_day01/config-browser/index.action 查看 struts2配置加載狀況