勿以惡小而為之,勿以善小而不為--------------------------劉備
勸諸君,多行善事積福報,莫作惡,
下面,老蝴蝶將帶大家學習 Struts2 框架
一. Struts2的下載和解壓目錄
Struts2的官網是:去官網 ,
點擊downloads下載所需要的版本即可,建議選 2.3 版本以上的,
下載后的目錄(兩個蝴蝶飛下載的是struts-2.3.24),如下所示

其中apps為官網所給的示例,docs為API檔案,lib為開發中所用jar包,src為源代碼,
二. 匯入開發所需的常用jar包
lib檔案夾下所給的Jar包過多,其中也有一些與其他框架整合的jar包,不能直接匯入 lib 檔案夾下的 jar包,
匯入apps檔案夾下所給的示例專案中的,如struts2-blank.war下面的,
可以用解壓工具將其解壓,也可以將其放在Tomcat下的webapps下進行運行解壓,
在WEB-INFO下的lib檔案夾下,復制所需要的jar包即可,

這就是Struts2基本開發所需要的jar包,
各個jar包的基本了解:

三. Struts2版的"兩個蝴蝶飛,你好" 控制臺開發
打開Eclipse,新建web動態專案,專案名稱為Struts_Hello,選擇2.5模式, 將所需的jar包放入到Struts_Hello的WEB-INFO下的lib檔案夾下,然后build path-->add即可,
改變原有的System.out.println()的輸出提示,用log4j日志的形式列印輸出, 添加log4j的jar包

在src目錄下添加log4j.properties屬性檔案,修改級別為info,
由于用的是eclipse,而不是myeclipse,沒有jstl和standard.jar包,將這兩個jar包也復制進來,
所需要的基本jar包已經完成,開始寫具體的代碼了,
開發Struts2有三個步驟,1. 寫具體的Action .2在src下的struts.xml中進行配置 3. 在web.xml中配置struts過濾器
為了避免忘記配置struts2過濾器,建議先配置struts2過濾器,
三.一 配置struts2的過濾器
在本專案的web.xml中進行相應的配置,配置代碼如下,所用的過濾器為StrutsPrepareAndExecuteFilter類,
<!-- 配置struts2的過濾器 -->
<filter>
<filter-name>struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
三.二 撰寫具體的Action
在com.yjl.web.action包下新建一個HelloAction的普通Java類,用到Log4j日志列印
package com.yjl.web.action;
import org.apache.log4j.Logger;
/**
* @author 兩個蝴蝶飛
* @version 創建時間:2018年8月23日 上午9:41:32
* @description 用日志記錄的控制臺輸出
*/
public class HelloAction {
private static Logger logger=Logger.getLogger(HelloAction.class);
public String execute() {
logger.info("兩個蝴蝶飛,你好");
return null;
}
}
注意exceute()方法的回傳值為null,表示沒有回傳值,且類 HelloAction.java 中的方法名稱只能是 execute() 方法,
三.三 根據Action配置struts.xml檔案
在src下新建或者從struts2所給的示例專案中復制一個struts.xml,添加相應的約束,去除多余的配置后,進行相應的配置Action,
配置后的 struts.xml 檔案內容如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="hello" extends="struts-default" namespace="/">
<action name="hello" ></action>
</package>
</struts>
注意中name的值,為hello,那么訪問路徑就是hello. class為全限定名稱,包括包名,
可以在HelloAction.java檔案中,選中HelloAction,右鍵,選中copy Qualified Name來快速復制全限定名稱,避免自己寫出錯,
將專案添加部署到Tomcat中,運行Tomcat,在地址欄輸入http://localhost:8080/Struts_Hello/hello.action,
兩個蝴蝶飛的埠號為默認的8080,根據自己的tomcat埠號進行修改,
發送請求后,在控制臺查看日志輸出:

日志正常列印,可以輸出,struts2的簡單配置開發完成,
上面配置的只是控制臺的方式,很清楚,客戶端瀏覽器傳入了相應的 url: /hello.action,
就自動找到了 HelloAction 類中的 execute() 方法執行,
四. Struts2版的"兩個蝴蝶飛,你好" WEB版開發
過濾器的配置是不變的,只需要改變第二步和第三步即可,
四.一 配置 前端過濾器
在本專案的web.xml中進行相應的配置,配置代碼如下,所用的過濾器為StrutsPrepareAndExecuteFilter類,
<!-- 配置struts2的過濾器 -->
<filter>
<filter-name>struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
四.二 撰寫具體的Action
新創建 com.yjl.web.action 包下的 HelloAction2 類
package com.yjl.web.action;
import org.apache.log4j.Logger;
/**
* @author 兩個蝴蝶飛
* @version 創建時間:2018年8月23日 上午9:41:32
* @description 用日志記錄的web層輸出
*/
public class HelloAction2 {
private static Logger logger=Logger.getLogger(HelloAction2.class);
public String execute() {
logger.info("兩個蝴蝶飛,web層你好");
return "success";
}
}
注意execute()方法有回傳值,并且回傳值為success,
四.三 根據Action配置struts.xml檔案
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="hello" extends="struts-default" namespace="/">
<action name="hello" ></action>
<action name="hello2" >
<result name="success">/index.jsp</result>
</action>
</package>
</struts>
注意,在action中添加了一個result的節點,name="success",與Action類中execute()方法的回傳值一樣,回傳到的地址為/index.jsp, /表示根目錄, 所以在根目錄下新建一個index.jsp,body體里面的內容為:
<body>
兩個蝴蝶飛,你好
</body>
重啟服務器,tomcat的訪問路徑為:http://localhost:8080/Struts_Hello/hello2.action, 查看請求后的結果
控制臺:

web頁面顯示:

本章節代碼鏈接為:
鏈接:https://pan.baidu.com/s/1DrUeeSC9mwGAnfYiZp5T2w
提取碼:k9p9
謝謝您的觀看!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/168202.html
標籤:Java
