跟我學框架之struts框架搭建(一)

一、框架概述

1、框架的意義與作用:

所謂框架,就是把一些繁瑣的重複性代碼封裝起來,使程序員在編碼中把更多的經歷放到業務需求的分析和理解上面。

特點:封裝了很多細節,程序員在使用的時候會非常簡單。

2、三大框架:

Struts2HibernateSpring


二、Struts框架的簡介

 

   1Struts2概述

      Struts2Apache發行的MVC開源框架。注意:它只是表現層(MVC)框架。

  在這裏我要來說說什麼是MVC)框架

  MModel模型,封裝數據。javabean

  Vview視圖,展示界面。jsp

  CController控制器,控制程序流程。Servlet

示意圖:


   2Struts2的來歷

     Struts1:也是apache開發的一套mvc的開源框架。在2005年之前非常流行。

       弊端:Struts1的核心控制器就是一個Servlet。隨着使用者的增多,弊端開始出現。

     Struts2:在之前有一個設計超前的框架XWork,後來推出了XWork1WebWork2Struts2就是apacheOpenSymphony組織合併開發出來。

      Struts裏面包含了WebWork2的核心及Struts1的一些特性和功能。除此之外,和Struts1沒有任何關係了。


三、Struts框架搭建


   1、下載Struts2開發包

    官網下載:   http://struts.apache.org,現在官網最新版本是2.5版本,我暫且使用2.3版本吧

這是下載的包。下載最新版本亦可以

   2、開發包目錄結構說明

    


lib文件夾下面有很多jar包,開發中使用那個,直接拷貝哪個就可以了

3、開始搭建Struts開發環境

開發工具我選擇的是eclipse,選擇myeclips也可以,至於開發工具的使用,我不再贅述,自行補腦

先創建一個web工程

所需jar包我們到下載的Struts包中的apps目錄下

war包文件,把這個struts2-blank.war包文件解壓

apps\struts2-blank\WEB-INF\lib下的所以jar全部拷貝




         

在src目錄下創建一個strust.xml文件


這裏我要說明一下,由於eclipse本身沒有帶strust的dtd約束

找到jar包中文件,解壓


我們會看到dtd文件

下面我來配置Struts的dtd文件約束,找以下位置,myeclips是集成好的,不用我們來配置

點擊ADD增加


key:http://struts.apache.org/dtds/struts-2.3.dtd  這是dtd文件命名空間地址

然後ok

最後找到


xml文件模本語法:

<?xml version="1.0" encoding="${encoding}"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>

</struts>

配置完之後,我們在寫Struts文件時就會語法提醒

新建一個Struts.xml文件


下一步next





這是我們創建好的模板


下一步finsh完成,就會看到生成的Struts.xml文件

注意:

1.文件名大小寫。

2.創建位置。

3.該名稱允許修改,但是我們一般不改。

接下來我們來配置控制器

a、配置位置:在web.xml

b、配置什麼: struts2已經寫好了的一個過濾器。

打開web.xml文件增加以下配置



  <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>

然後我們來發佈下,看看

啓動沒報錯,說明成功了

運行http://localhost:8080/Strust-S1/hello

執行成功了

Struts工作原理圖

4、Struts執行流程

struts工作時序圖




Struts2配置文件加載時序:
加載時機:

當應用被tomcat容器加載的時候,struts2的配置文件就已經被加載過了。


加載順序:default.properties——struts-default.xml——plugins配置——struts.xml——struts.properties——web.xml


default.properties 該文件保存在 struts2-core-2.3.15.3.jar 中 org.apache.struts2包裏面

struts-default.xml 該文件保存在 struts2-core-2.3.15.3.jar
struts-plugin.xml 該文件保存在struts-Xxx-2.3.15.3.jar
struts.xml 該文件是web應用默認的struts配置文件
struts.properties 該文件是Struts的默認配置文件
web.xml 該文件是Web應用的配置文件
如果多個文件配置了同一個struts2 常量,則後一個文件中配置的常量值會覆蓋前面文件配置的常量值


Struts給我們提供了兩種文件配置方式:


1Struts2提供了兩種配置的方式。一種是key=value的方式,即使用.properties文件。缺點:如果屬性太多不容易維護上下級關係

2、是xml文件配置。我們推    薦使用xml文件(它能描述層級關係)。

我們來看struts-default.xml文件


我們這裏注意下,

當多個配置文件中,有相同的參數,後面的會把前面的值給覆蓋了

下面我們來看看default.properties配置文件,體現形式都是key=value。它主要定義了Struts框架的常量,下面主要是一些常用的列舉出來



如果我們想改變Struts默認提供的常量,我們可以選擇覆蓋的方式:

1.例如,Struts默認的後綴名是.action,我們想修改一下後綴名,我們可以在Struts.xml文件中定義常量


這裏我只是把開發上常用的常量列舉了出來一部分

除了在xml文件中配置,我們也可以創建

struts.properties文件來設置


3、Struts的package元素

3.1、作用:

struts2的配置文件中引入了面向對象思想,使用了分包管理。易於管理動作類。便於模塊化開發動作類。

3.2、屬性:

name:包的名稱。必須寫。且必須唯一。

extends:一般情況下需要繼承struts-default包,但不是必須的。不過如果不繼承的話,將無法使用struts2提供的核心功能。

struts-default.xml中定義着struts-default這個包。而struts-default.xml是在我們的struts.xml加載之前加載。

abstract:把包聲明爲抽象包,抽象包就是用來被繼承的。只要是沒有<action>元素的包,就可以聲明爲抽象包。

namespace:名稱空間。

名稱空間 + 動作名稱 = 訪問路徑



 這裏的不是必須的,默認的不是“/”,可以不寫,如果寫了可以是“” 

這裏我要說明下

名稱空間的搜索順序:
    第一步:先去找對應的名稱空間在指定的名稱空間下找到了:

    就執行第二步
    在指定的名稱空間下沒找到:按照名稱空間結構向上追溯,一直到根名稱空間,只要     在任何一級找到了,執行第二步
  第二步:找動作名稱
   先在指定的名稱空間下,搜索對應的動作名稱:找到了就執行動作類的動作方法。
在指定的名稱空間下沒找到對應的動作名稱:前往默認的名稱空間下,找動作名稱。


注意:它只找動作名稱。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章