1:*****=配置和啟動*****=
(1)配置web.xml
1解析:(2)配置struts-config.xmlstruts-config.xml檔案中,注意其標籤的type屬性,設定為spring的**action類。由此真正的action建立交給spring完成。<
context-param
>
2<
param-name
>contextconfiglocation
param-name
>
3<
param-value
param-value
>
4context-param
>
5<
listener
>
6<
listener-class
>org.springframework.web.context.contextloaderlistener
listener-class
>
7listener
>
若不使用spring,type設定為com.project.loginaction等自定義類;使用spring,type設定為"org.springframework.web.struts.delegatingactionproxy"。
但"仍需構建具體action",並編寫action的具體方法。該action"在spring的配置中引用",詳見"(4)配置spring"。
相當於將struts配置轉移到了spring配置中,此處即struts與spring框架結合的關鍵結合點。
配置範例:
1由spring來建立和管理action,並向action注入model層service物件。<
struts-config
>
2<
form-beans
>
3<
form-bean
name
="loginform"
type
="com.project.usermgr.web.forms.loginactionform"
/>
4form-beans
>
5<
>
6<
action
path
="/login"
7type
="org.springframework.web.struts.delegatingactionproxy"
8name
="loginform"
9scope
="request"
10>
11<
forward
name
="success"
path
="/login_success.jsp"
/>
12action
>
13>
14<
message-resources
parameter
="messageresources"
/>
15struts-config
>
設定scope="prototype"後可使每個執行緒都有乙個新的action,從而解決struts1.x的action執行緒安全問題。
注意:①必須使用name屬性,且name屬性的值必須和struts-config.xml檔案中標籤的path屬性值一致
②必須配置model層service物件,如usermanager等。
配置範例:
1(4)構建actionmodel層service物件由spring"自動注入",因此無需手動構建該物件,也無需獲取beanfactory。通過"自動注入"的方式獲取物件,即"依賴注入"。<
bean
name
="/login"
class
="com.project.usermgr.web.actions.loginaction"
scope
="prototype"
>
2<
property
name
="usermanager"
ref="usermanager"
/>
3bean
>
注意,相關物件須提供set方法,以方便spring注入。
12:*****==請求的執行*****==--------------請求的過程:-------------public class loginaction extends action
13//須提供set方法,以方便spring注入。
14public void setusermanager(usermanager usermanager)
17 }
1.伺服器啟動,建立struts2的filter控制器,建立spring容器物件.
例項化struts2控制器時,載入struts.xml,struts-default.xml,default.properties,struts-plugin.xml等struts相關配置
2.客戶瀏覽器傳送請求,請求到達struts2的filter控制器
3.如果是action請求,struts2控制器根據struts.xml的配置,
要呼叫乙個action物件處理.
4.struts2控制器呼叫struts-spring-plugin.jar提供的objectfactory
獲取乙個action物件.
方法一:objectfactory利用元素的class屬性去spring容器尋找id=class的bean物件.
*方法二:如果按上述方法找不到,objectfactory會利用class指定值建立乙個物件.然後將spring容器的dao,service按名稱匹配規則給action注入.
5.struts2控制器呼叫action執行業務處理,處理完畢,返回乙個string標識
6.struts2控制器根據string標識呼叫result元件,生成響應資訊
7.將響應資訊給客戶瀏覽器輸出,完成響應處理.
配置SSH框架的心得
開發工具為myeclipse,開發工具自帶struts2,hibernate,spring框架的匯入。在新建的專案上右擊myeclipse project facets install struts。這樣就引入了struts2的包。同理,spring和hibernate都一樣。但這樣的後果是,有很多...
SSH框架的專案執行流程
1.伺服器啟動,建立struts2的filter控制器,建立spring容器物件.1 例項化struts2控制器時,載入struts.xml,struts default.xml,default.properties,struts plugin.xml等struts相關配置2.客戶瀏覽器傳送請求,請...
Nginx啟動,停止和重新載入配置
nginx配置檔案 nginx及其模組的工作方式是由配置檔案指定,預設情況下配置檔案被命名為nginx.conf並且存放在 usr local nginx conf etc nginx usr local etc nginx nginx命令 要啟動nginx直接執行nginx檔案,啟動後可以使用以下...