Struts2框架的搭建以及核心配置

Struts2一個mvc框架 採用攔截器機制來處理用戶的請求。

工具/原料

myeclipse/eclipse
jdk環境
tomcat
電腦

jar包的引入

第一步、引入13個jar包到web項目的lib文件夾下面

每個jar包都有著不同的作用,附圖有詳解

注意commons-lang要引入3.0以上的版本,不然啟動的時候回報錯

攔截器配置

struts2的核心就是攔截器

怎麼配置攔截器呢?

在web.xml裡面配置,

<!--攔截器在工作  -->  <filter>  <filter-name>struts2</filter-name>  <filter-class>org.apache.struts2.dispatcher.ng.filter.Struts2PrepareAndExecuteFilter</filter-class>  </filter>  <filter-mapping>  <filter-name>struts2</filter-name>  <url-pattern>/*</url-pattern>  </filter-mapping>

注意:

<filter-name>struts2</filter-name>中的struts2可以是任何名稱,但是要和下面的  <filter-mapping>裡面的<filter-name>一致

當然,由於做項目的時候程序比較複雜,struts2這個名稱比ssh這個名稱更有辨識度!

Action類

這個類繼承了ActionSupport類,ActionSupport類好處很多,以後會重點解釋

但是這個類在這裡是沒有起到什麼作用的!

看這個類,我們要知道,這個類的包名、方法名,返回的是yes就可以了

package cn.com.day01;import com.opensymphony.xwork2.ActionSupport;public class ActionSupportClass extends ActionSupport{    /**     *      */    private static final long serialVersionUID = 1L;/*author:命運的信徒     * date:2019/3/9     * arm:了解struts2的運作流程     */public String helloworld(){    System.out.println("Action類執行了");    return "yes";}}

struts.xml文件的配置

struts.xml直接放在src的根目錄下面就可以了

基礎模板如下

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "struts-2.1.7.dtd" ><struts><!-- 設置後綴名為action --><constant name="struts.action.extension" value="action"></constant><package name="tjn" namespace="/" extends="struts-default"><action name="hello" class="cn.com.day01.ActionSupportClass" method="helloworld"><result name="yes">/succese.jsp</result></action></package></struts>

也可以不用模板,自己新建

1、在src上面,右鍵-new xml(basic tempalet)

2、命名為struts.xml

3、next-選擇第一個

4、next-選擇第二個-只要找到Struts Configuration的字眼的都可以,版本隨意

如果myelicpse/eclispe裝了struts就更簡單了

項目上右鍵-myeclispe-add struts ....

根據提示一步步的就可以了

我們開始講struts.xml裡面的配置欄位

<constant name="struts.action.extension" value="action"></constant>

的意思就是設置Action請求的後綴名為action,

什麼意思?

當前台的一個請求,如hello.action,hello.kk,struts.xml只識別.action後綴名的為我這個配置文件的請求,其他的不是!

當然欄位的配置可以放在src下面的一個struts.properties文件夾裡面

也可以放在web.xml的init-param裡面,

三種欄位的配置,一般都是把欄位放在struts.xml文件裡面配置

附圖為其他的配置欄位的樣式,三選一就可以了!

<package name="tjn" namespace="/" extends="struts-default"</package>

name="tjn"是包名,因為到後來項目的複雜,一個struts.xml中有多個package

所以name是唯一的標識符

namespace是命名空間,沒什麼用處

extends是繼承的意思,一般都是繼承struts-default,這個struts-default裡面有許多的攔截器機制

也可以繼承其他的包名!

<action name="hello" class="cn.com.day01.ActionSupportClass" method="helloworld"></action>

這個action中name="hello"對於的就是前台頁面jsp中的請求的名稱

如  <a href="hello.action">點我</a>

class就是要處理用戶請求類的地址,一般ctrl+滑鼠點擊就可以進去

method就是這個類裡面的方法

如果沒有method,默認方法名是execute

<result name="yes">/succese.jsp</result>

name是類中的方法返回的字符串,如果沒有name="yes"的話,默認返回的是success

/success.jsp:如果類中的方法返回的字符串==success的話,執行成功的話,頁面就會跳轉到success.jsp頁面

前台頁面jsp

<a href="hello.action">點我</a>

頁面效果如下

struts執行的流程

1、當web項目啟動的時候,StrutsPrepareAndExecuteFilter機制就開啟了;

2、當前台頁面jsp發送一個httpservlet請求的時候,可以是

<a href="success.jsp"></a>

或<a href="hello.action">點我</a>

或<a href="/項目名/LoginServlet">點我</a>

3、這一切都有ActionMapping來判斷是不是Action請求,不是的話,就直接去http相應,如果是的話,就會把請求處理交給ActionProxy;

4、ActionProxy會通過配置管理器找到struts.xml文件,怎麼找相應的action呢?通過創建Action ActionInvocation實例,Action ActionInvocation根據請求的名稱<action name="hello"來找到Action類,在調用Action類之前,會經過各類的攔截器機制,這個攔截器機制是核心,後面會有很多的用處;

5、一旦Action執行結束,就會返回一個字符串,Action ActionInvocation就會負責查找result中name和字符串相符的result ,執行result;

6、產生的result信息返回給ActionInvocation,這個過程也會經過攔截器機制

注意:struts.xml文件可以有多個,但是web項目啟動的時候,從前台都後台默認的都是struts.xml文件,如果你想調用struts-demo.xml文件的話,可以在struts.xml文件中包含

<include file="struts-demo.xml"/>

這個寫法是默認struts-demo.xml也在src根目錄下面

相關文章

  1. struts2框架的搭建

    Struts2框架是在學習Java EE 開發中會接觸到一個開源框架,對於初學者,怎麼搭建好該框架?這篇經驗將幫助你搭建好Strust2框架. 工具/原料 MyEclipse8.5 tomcat6.0 ...
  2. 在eclipse下搭建struts2框架

    struts2框架在目前的Java Web中使用較多,初學者開始搭建框架時有點困惑,主要對web.xml和struts.xml文件配置不清楚,以及該導入的核心包有哪些. 工具/原料 eclipse s ...
  3. myeclipse中使用Struts2框架XML提示配置

    在myeclipse中使用struts2框架的時候,開發過程需要使用XML,但是有的XML信息不提示,我們如果初次使用,不知道有什麼屬性和方法,所以把XML的提示配置出來還是很有必要的. 工具/原料 ...
  4. JAVA三大框架之一Struts2框架搭建

    搭建Struts2框架節省了開發時候,提高了開發效率,規範了代碼的結構! 工具/原料 電腦,MyEclipse軟體等 方法/步驟 打開MyEclipse軟體,建立一個Java web項目,如下圖所示. ...
  5. struts2框架搭建 一步步從小白走向大神

    很多人對於strut2框架不會搭建,今天小編帶你們一步步走上大神 工具/原料 eclipse 電腦 配置好的tomcat 方法/步驟 新建一個web類型的項目,名字為struts2_practice0 ...
  6. springMVC教程3環境的搭建之xml配置:[3]

    上一節新建了項目,導入jar包,和新建了一些必要的文件夾,那麼這節課是接著上一節講的,給大家講解一下xml的配置 工具/原料 MyEclipse 電腦 方法/步驟 打開電腦,並且打開MyEclipse ...
  7. 搭建LAMP伺服器--配置web環境

    實這裡要說配置不說就是處理下宿主與虛擬機的關係.普通的遠程伺服器也是用ip,本教程的只是用的NAT把宿主與虛擬機聯繫到了一塊. 廢話不多說,先說怎麼識別虛擬機的訪問地址,因為用的NAT,只要知道虛擬機 ...
  8. PHP開源框架Laravel的安裝與配置

    小編將帶領大家一步步在Windows 7平台下搭建該框架: 工具/原料 windows 7 Composer Laravel最新框架 方法/步驟 安裝composer.安裝之前要確保目錄:wamp\b ...
  9. Java運行環境搭建(變量配置、安裝)詳細教程

    提供在windows系統下詳細java運行環境的搭建(JDK的下載及配置其環境變量,Eclipse的下載與安裝)及簡單java程序運行步驟. 工具/原料 Windows7,8作業系統. JDK(Jav ...
  10. Struts2框架---值棧

    1.值棧在Struts2框架中是非常重要的對象,被存儲在ActionContext對象中可以在任何節點訪問值棧中的內容值棧是一個數據區域,該區域中保存了應用範圍內的所有數據和Action處理的用戶請求 ...
  11. 在Struts2框架中獲取Servlet api的方式有三種

    1.使用ActionContext訪問Servlet API(推薦) 2.使用IOC的方式訪問Servlet ApI 3.使用耦合方式訪問Servlet API 工具/原料 Myeclipse6.5( ...
  12. 搭建LAMP伺服器--配置環境

    終於有時間(其實更應該說有心情)繼續研究研究LAMP,我也是邊看網上教程邊配置的然後直接寫上來的,就當現場直播,免不了會有事故(比如寫一半就夭折).寫這文章的初衷就是 1 為了自己親身經歷 2 總結下 ...
  13. Myeclipse SSM框架的搭建和登錄demo功能的實現

    昨天複習了一下SSM框架,發現總結的東西有點兒多,今天就發在這兒讓大家看看我寫的SSM框架demo,這只是基礎教程,僅作為參考!如果僅僅想看配置到第五步就可以了.看完的覺得好用的投個票,點個讚也可以哦 ...
  14. win10系統下jdk1.7開發環境搭建 環境變量配置

    超詳細.很多小夥伴,還是對jdk的環境搭建比較陌生的,有很多教程是在系統盤安裝的jdk,我這裡就為大家帶來win10系統下 不在系統盤安裝jdk的環境搭建教程. 工具/原料 jdk 1.7 win10 ...
  15. Java中SSH框架怎樣搭建

    ssh框架是企業級的最基礎的框架之一. 工具/原料 MyEclipse 10,SQL server 2008,sqljdbc4.jar 方法/步驟 先新建一個test項目. 先建立與資料庫的聯繫,在M ...
  16. linux下mysql的搭建及簡單配置

    linux系統是企業及網站應用非常普遍的系統:mysql又是一款非常優秀的免費資料庫,二者合一是目前大多數企業建站的首選,在此介紹一下linux下搭建mysql環境以及一些簡單配置 工具/原料 安裝有 ...
  17. 搭建個人網站配置iis環境和資料庫環境

    在這裡講解搭建網站時候需要配置的環境,分為兩部分配置IIS和資料庫.首先來看搭建IIS(這裡用win7為例):搭建IIS第一步依次點擊"開始"->"控制面板&quo ...
  18. struts2教程 架構搭建 登錄demo

    很多java web開發的初學者都會學習struts框架,struts2框架能夠很好的將前後台連接在一起,一下我將做一個登錄的小程序來搭建struts2框架 工具/原料 Myeclipse strut ...
  19. Struts2框架的一些基本的知識點

    declare聲明定義 getDeclaredDields()獲取已經聲明好的屬性 getDeclaredDield(屬性名)獲取指定的屬性 getDelaredMethiods()獲取已經聲明好的方 ...
  20. struts2 感嘆號動態加載方法配置(親測)

    在action中編寫多個方法後,要想使用"!"號動態加載不同的方法以打開不同的頁面,在struts.xml中配置路徑和頁面時必須要在<package></pack ...