Struts2 入門的學(xué)習(xí)筆記。
概念知識(shí)不寫于此處了,直接進(jìn)入項(xiàng)目實(shí)現(xiàn)部分。
步驟:
1. 在MyEclipse中創(chuàng)建Web Project工程。
2. 下載struts2的jar包,我下載的版本struts-2.1.6,解壓后有4個(gè)文件夾有l(wèi)ib(jar包),apps(案例程序),docs(文檔),src(源文件)。
選擇以下jar包導(dǎo)入到工程當(dāng)中:commons-fileupload-1.2.1,commons-io-1.3.2,commons-logging-1.1,freemarker-2.3.13,ognl-2.6.11,struts2-core-2.1.6,xwork-2.1.2。
3. 創(chuàng)建struts.xml文件在src根目錄下,代碼如下:
<?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>
<constant name="struts.devMode" value="true" /> 設(shè)置struts2為開發(fā)模式,當(dāng)修改struts.xml文件不用重新部署項(xiàng)目
<package name="default" namespace="/" extends="struts-default"> namespace查詢action的路徑設(shè)置
<action name="hello"> action的名稱
<result>
/Hello.jsp result對應(yīng)action的結(jié)果
</result>
</action>
</package>
</struts>
4. 配置web.xml文件,代碼如下:
固定寫法,把struts2配置成一個(gè)過濾器。
<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>
5. 在WebRoot下創(chuàng)建一個(gè)Hello.jsp文件。
6. 部署項(xiàng)目啟動(dòng)服務(wù)器,在瀏覽器地址欄輸入http://localhost:8083/struts2/hellos或者http://localhost:8083/struts2/hello.action。
可以有action也可以沒有。
注意:struts2.1.6這個(gè)版本有一個(gè)bug是當(dāng)你開啟了struts2的開發(fā)模式時(shí),必須服務(wù)器路徑不能有空格出現(xiàn),否則服務(wù)器無法正確啟動(dòng),這點(diǎn)需要各位調(diào)整。
Struts2的執(zhí)行過程:客戶端請求通過Url,找到對應(yīng)項(xiàng)目中的web.xml,又根據(jù)過濾器做doFilter操作,找到struts.xml文件做namespace,action,result操作,按result進(jìn)行forward到對應(yīng)的視圖,最后把該視圖響應(yīng)給客戶端。
執(zhí)行的時(shí)序圖如下:
