1. 程式人生 > >1、Struts2基本入門

1、Struts2基本入門

一、瞭解了這幾個主要的優點,會促使你考慮使用Struts2 :

    1、POJO表單及POJO操作 - Struts2 去除掉了Struts框架中的Action Forms部分。在Struts2框架下,你可以用任何一POJO來接收表單輸入,同樣的,你可以把任一POJO視為一個Action類。

    2、標籤支援 - Struts2 改進了標籤表單,而新的標籤可讓開發人員減少程式碼編寫量。

    3、AJAX支援 - Struts2 被認可接收進Web 2.0技術,並建立了功能非常類似於標準的Struts2 標籤的AJAX標籤,把AJAX支援整合進其結果中。

    4、易於整合 - Struts有多種整合方式可使用,現在與其他型別的框架,如Spring、Tiles、SiteMesh之類的,整合更為容易了。

    5、模板支援 - 支援使用模板生成檢視。

    6、外掛支援 - 有大量的外掛可用於Struts2,而使用外掛可以增強和擴大Struts2 核心行為。

    7、促進減少配置 - Struts2 使用各種設定的預設值促進減少配置,而你不需要再配置什麼除非是偏離了Struts2 設定的預設設定。

    8、檢視技術 - Struts2 為多種檢視選項(JSP、Freemarker、Velocity、XSLT等)提供支援。

二、三層開發模型 MVC

模型(Model)-檢視(View)-控制器(Controller),通常簡稱MVC,是一種開發web應用程式的軟體設計模式。該軟體設計模式由以下三部分組成:  

        模型——屬於軟體設計模式的底層基礎,主要負責資料維護。  

        檢視——這部分是負責向用戶呈現全部或部分資料。 

        控制器——通過軟體程式碼控制模型和檢視之間的互動。

                                                                                                          

 

三、Struts2的基本元件、架構

從一個高水平角度看,Struts2 是一個MVC拉動的(或MVC2)框架,Struts2 的模型-檢視-控制器模式是通過以下五個核心部分進行實現的:

  • 操作(Actions)
  • 攔截器(Interceptors)
  • 值棧(Value Stack)/OGNL
  • 結果(Result)/結果型別
  • 檢視技術

 

而Struts2 與傳統的MVC框架略有不同,因為它由Action扮演模型的角色,而不是控制器,雖然這樣會有一些重疊。                                                                                             

四、一個請求的生命週期

通過上述圖片的描述,我們可以依照下面幾點解釋在Struts2 中使用者的請求生命週期:

    1、使用者傳送一個資源需求的請求到伺服器(例如:頁面)。

    核心控制器檢視請求後確定適當的動作。

    使用驗證、檔案上傳等配置攔截器功能。

    執行選擇的動作來完成請求的操作。

    另外,如果需要的話,配置的攔截器可做任何後期處理。

    最後,由檢視顯示結果並返回給使用者

 

                                                                                                                   【備註:以上的概念性東西摘用自W3School裡面的內容】

五、建立一個入門專案,初步瞭解Struts2:

1、使用IDEA建立Struts2的前期準備:

                                                       

 

 

                                                                                                        

 

2、手動匯入lib資料夾中的jar包可能無法被識別,這個時候需要手動配置一下就沒問題了。

                                                              

 

3、建立對應的目錄結構:

    【如果,extends中報錯了,可以按照下面的方法來記性解決。】

                                                              

 

具體程式碼目錄如下:

                                                                                                                         

 

 2、如果上面的準備工作完成,我們就可以按照需求來開始寫程式碼了

後臺的Action層,也就是和前端互動的入口java程式:Demo1Action.java

package com.turtle.demo1;

        import com.opensymphony.xwork2.ActionSupport;

/**
 * 測試:這個是測試的後臺Action,用來處理前端的操作流程
 */
public class Demo1Action  extends ActionSupport {

    @Override
    public String execute() throws Exception {
        System.out.println("哈嘛批,你倒是跳啊!!!");
        return "success";
    }
}

 

Struts的配置檔案,用來配置路徑對映對應的java類和方法:Struts.xml

<?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>
    <package name="demo1" extends="struts-default" namespace="/">
        <action name="demo1Action" class="com.turtle.demo1.Demo1Action">
            <result name="success">/demo1/success.jsp</result>
        </action>
    </package>
</struts>

 

前端介面,一個是首頁、一個是從後臺重定向到新的介面:index.jsp  success.jsp

<%--
  Created by IntelliJ IDEA.
  User: szwb174
  Date: 2019/10/23
  Time: 10:21
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Struts2的入門測試</title>
</head>
<body>
    <h1>Struts2的入門測試</h1>
    <h2><a href="demo1Action.action">去Demo1Action中的Struts2的入門測試execute方法了</a></h2>
</body>
</html>
<%--
  Created by IntelliJ IDEA.
  User: szwb174
  Date: 2019/10/23
  Time: 10:29
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>demo1Action處理成功</title>
</head>
<body>
    <h1>成功跳轉過來了</h1>
</body>
</html>

 

web專案的核心配置檔案,主要是配置前端過濾器: web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <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>
</web-app>

3、最後還需要 配置對應的伺服器,就可以完成測試了:

                                                                                    

 

4、測試結果:

                                                                                                

 

 

 六、總結:

  1、這是第一篇入門的文章,不涉及太多概念,只強調操作。搭建好環境,為了下面的深入學習做好鋪墊,如果沒有搭建好環境,不能自己去嘗試的寫程式碼,學習效率會很低。

  2、知道怎麼跑通這個程式。對Struts2有一個大概的瞭解,能知道執行的流程。從前端經過前端控制器,然後再到Action處理器進行處理。

  3、能夠對幾個配置檔案的位置、裡面的內容有一定的理解。

  4、後面的文章會詳細深入,對裡面的知識點會一點一點的理順。

  5、難度係數慢慢的提升,先會用,再去了解裡面的小知識點即可。