1. 程式人生 > >Struts2學習總結(一)

Struts2學習總結(一)

Struts2學習總結(一)

Struts2 概述

  1. Apache Struts2最初被稱為WebWork 2,它是一個簡潔的、可擴充套件的框架,可用於建立企業級Java web應用程式。設計這個框架是為了從構建、部署、到應用程式維護方面來簡化整個開發週期
  2. 對於MVC三層結構應用於javaEE的web層框架。
  3. Struts2 在 Struts1 和 webwork 基礎之上發展的全新的框架
  4. Struts2 使用 過濾器 action 解決web 請求servlet方便維護管理的一些基本操作 例如:增刪改查 (個人理解)

Struts2 框架入門

  1. 匯入jar包
    下載Struts2 - all.zip 解壓
    (1)在lib中有jar包,不能把這些jar都匯入到專案中
    (2)到apps目錄裡面,找到示例程式,從示例程式複製jar包(app目錄:放置Struts2官方的示例檔案)
    這裡寫圖片描述
  2. 第二步 建立action
public class HelloAction {
// 訪問servlet 都會執行 serivce 方法
// 訪問action 都會執行 execute 方法 ( 預設訪問 )
public String execute(){
return 'ok';
}
}
  1. 配置action類訪問路徑
    (1)建立struts2核心配置檔案
    • 核心配置檔名稱和位置是固定的
    • 位置必須在src下面,名稱 struts.xm
      (2)引入dtd約束 (apps 目錄下的示例檔案找)
      (3)action配置這裡寫圖片描述
      訪問路徑:
      http://127.0.0.1/struts2/hello.action
      第四步 配置struts2過濾器
      (Strust2自帶過濾器放到 web.xml )

Struts2 執行過程這裡寫圖片描述

1 過濾器在伺服器啟動時候建立,建立過濾器時候執行init方法
(1)在init方法中主要載入配置檔案
- 包含自己建立的配置檔案和struts2自帶配置檔案
** struts.xml
** web.xml

Struts2的核心配置檔案

1 名稱和位置固定的 (src 資料夾下)

2 在配置檔案中主要三個標籤 package、action、result,標籤裡面的屬性

標籤package

1 類似於程式碼包,區別不同的action(或者action塊 ),要配置action,必須首先寫package標籤,在package裡面才能 配置action

2 package標籤屬性
(1)name屬性 (區分不同的package)
- name屬性值根功能本身沒有關係的,
- 在一個配置檔案中可以寫多個package標籤,name屬性值不能相同的

(2)extends屬性

  • 屬性值固定的,struts-default
  • 寫了這個屬性之後,在package裡面配置的類具有action功能

(3)namespace屬性
- namespace屬性值和action標籤裡面的name屬性值構成訪問路徑 一般為 ‘/’

標籤action

1 action標籤配置action訪問路徑

2 action標籤屬性
(1)name屬性
- namespace屬性值和action標籤裡面的name屬性值構成訪問路徑
- 在package標籤裡面寫多個action標籤,但是action的name屬性值不能相同的

(2)class屬性
- action全路徑

(3)method屬性
- 比如在action裡面預設執行的方法execute方法,但是在action裡面寫其他的方法
- 讓action裡面多個方法執行,使用method進行配置

Struts2常量配置

1 struts2框架,幫我們實現一部分功能,struts2裡面有常量,在常量裡面封裝一部分功能

2 struts2預設的常量位置(記住)
3 修改struts2預設常量值
(1)常用的方式
- 在struts.xml中進行配置
(2)還有兩種方式(瞭解)
- 在src下面建立 struts.properties,進行修改
- 在web.xml進行配置

4 最常用常量

分模組開發

1 單獨寫配置檔案,把配置檔案引入到核心配置檔案中

這裡寫圖片描述

Action編寫方式 (重點)

1 action編寫有三種方式
第一種 建立普通類,這個不繼承任何類,不實現任何介面

public class HelloAction{
    //寫其他方法
}

第二種 建立類,實現介面 Action

public class UserAction impletments Action {
  @override
  public String execute() throws Exception{
      return SUCCESS ;
  }
}

第三種 建立類,繼承類 ActionSupport(一般使用)

public class HelleAction extends ActionSupport{

}

訪問action的方法(重點)

1 有三種方式實現
第一種 使用action標籤的method屬性,在這個屬性裡面寫執行的action的方法

第二種 使用萬用字元方式實現

第三種 動態訪問實現(不用)

2 演示錯誤
(1)如果action方法有返回值,在配置檔案中沒有配置,出現錯誤

(2)在action裡面的方法有返回值,如果有返回值時候型別必須是String
(3)action裡面的方法可以沒有返回值,沒有返回值時候,在result標籤不需要配置
- 把方法寫成void
- 讓返回值,返回 ”none”