Struts2的"兩個蝴蝶飛,你好"簡單開發(一)

我把你的頭像,設置成個人名字,此刻你便與我同在。

我把你的名字,寫進個人代碼裏面,之後,個人世界便存在着你。java


 

「兩個蝴蝶飛」特別喜歡"java1234知識分享網"小峯的實用主義,因此本文及其系列文章均是採用實用主義,從項目和代碼的角度去分析。因爲本人經驗有限,嘴皮子不溜,因此學術性,概念性,底層性的知識點暫時不作介紹。文章中有錯誤之處,歡迎拍磚和指點。特別感謝"java1234知識分享網 "和"黑馬程序員官網",全部的資料大部分是二者提供,爲了方便書寫,故不一一指名出處,請諒解,很是抱歉。程序員

 

一  Struts2的下載和解壓目錄

Struts2的官網是:去官網 。點擊downloads下載所須要的版本便可。下載後的目錄(兩個蝴蝶飛下載的是struts-2.3.24)以下所示:web

其中apps爲官網所給的示例,docs爲文檔介紹,lib爲開發所用jar包,src爲源代碼。apache

 

  二  導入開發所需的經常使用jar包

lib文件夾下所給的Jar包過多,其中也有一些與其餘框架整合的jar包,不能導入這裏面的。導入apps文件夾下所給的示例項目中的。如struts2-blank.war下面的。能夠用解壓工具將其解壓,也能夠將其放在Tomcat下的webapps下進行運行解壓。在WEB-INFO下的lib文件夾下,複製所須要的jar包便可。tomcat

這就是Struts2基本開發所須要的jar包。服務器

各個jar包的基本瞭解:app

三    Struts2版的"兩個蝴蝶飛,你好"

打開Eclipse,新建web動態項目,項目名稱爲Struts_Hello,選擇2.5模式。 將所需的jar包放入到Struts_Hello的WEB-INFO下的lib文件夾下,而後build path-->add便可。框架

改變原有的System.out.println()的輸出提示,用log4j日誌的形式打印輸出。 添加log4j的jar包eclipse

在src目錄下添加log4j.properties屬性文件,修改級別爲info。webapp

因爲用的是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,表示沒有返回值。

三.三  根據Action配置struts.xml文件

在src下新建或者從struts2所給的示例項目中複製一個struts.xml,添加相應的約束,去除多餘的配置,進行相應的配置Action

<?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" class="com.yjl.web.action.HelloAction"></action>
    </package>
</struts>

注意<action>中name的值,爲hello,那麼訪問路徑就是hello. class爲全限定名稱,包括包名。 能夠在HelloAction.java文件中,選中HelloAction,右鍵,選中copy Qualified Name來快速複製全限定名稱,避免本身寫出錯。

將項目添加部署到Tomcat中,運行Tomcat,在地址欄輸入http://localhost:8080/Struts_Hello/hello.action, 兩個蝴蝶飛的端口號爲默認的8080,根據本身的tomcat端口號進行修改。

發送請求後,在控制檯查看日誌輸出:

 

日誌正常打印,能夠輸出,struts2的簡單配置開發完成。

上面配置的只是控制檯的方式,struts2是Web層框架,配置一個web層的簡單開發實例。

過濾器的配置是不變的,只須要改變第二步和第三步便可。

三.二(加強) 編寫具體的Action

package com.yjl.web.action;
import org.apache.log4j.Logger;
/**
* @author 兩個蝴蝶飛
* @version 建立時間:2018年8月23日 上午9:41:32
* @description 用日誌記錄的web層輸出
*/
public class HelloAction {
    private static Logger logger=Logger.getLogger(HelloAction.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" class="com.yjl.web.action.HelloAction">
            <result name="success">/index.jsp</result>
        </action>
    </package>
</struts>

 

注意,在action中添加了一個result的節點,name="success",與Action類中execute()方法的返回值同樣,返回到的地址爲/index.jsp, /表示根目錄。 因此在根目錄下新建一個index.jsp,內容爲:

<body>
    兩個蝴蝶飛,你好
</body>

重啓服務器,tomcat的訪問路徑爲:http://localhost:8080/Struts_Hello/hello.action, 查看請求後的結果

控制檯:

web層的Struts2的簡單項目也算是完成了。

 

謝謝,我是兩個蝴蝶飛。

相關文章
相關標籤/搜索