Struts2是一個比較出色的基於MVC設計模式的框架,是由Struts1和WebWork發展而來的,性能也比較穩定,如今是Apache軟件基金會的一個項目,下面就來配置Struts2進行初始化的開發html
Struts2對環境要求不高,JDK版本1.5以上,ServletAPI在2.5以上,Tomcat版本在6.0以上便可,固然更推薦使用最新版本java
首先去Apache官網下載Struts2的類庫,http://www.apache.org最下方的Struts項目超連接http://struts.apache.org,進入Struts首頁以下:web
點擊Download按鈕進入下載界面,apache
目前Struts最新版本是2.3.24.1,分爲apps項目案例,lib核心驅動,docs文檔和src框架源碼,根據須要進行下載,我這裏下載的struts-2.3.24.1-all.zip這其中包括全部的包,下載到本地解壓出來便可,這個頁面中還有以前版本的下載連接,也包括struts1的下載連接設計模式
若是想下載全部的歷史包,連接是:http://people.apache.org/builds/struts/tomcat
而後打開eclipse for javaEE,新建動態網站項目服務器
輸入項目名確認便可,而後就創建了一個普通的web項目,和以前的沒有區別,另外注意要建立web.xml配置文件app
而後,打開咱們剛纔下載的Struts2中lib目錄,這下面有很是多的Struts類庫,並非徹底須要,通常狀況下咱們只導入經常使用的便可,其餘的到須要的時候再導入,須要的jar包以下圖:框架
複製到lib目錄後,eclipse項目會自動導入web的類庫eclipse
而後,配置web.xml,在<web-app>節點之間添加下面代碼,也就是Struts2的框架的過濾器
1 <filter> 2 <filter-name>struts2</filter-name> 3 <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> 4 </filter> 5 6 <filter-mapping> 7 <filter-name>struts2</filter-name> 8 <url-pattern>/*</url-pattern> 9 </filter-mapping>
配置過濾器是Struts2能跑起來最基本的前提,工做原理就是當tomcat容器啓動時,首先加載web.xml,因此會加載其中定義的過濾器,所以StrutsPrepareAndExecuteFilter過濾器會過濾項目下全部的請求,而後後來利用過濾器捕獲action請求,從而調用相應的方法進行處理,這就是Struts2的大體工做狀況,StrutsPrepareAndExecuteFilter類出現可讓開發人員自定義過濾器,從而在請求到達處理之間對用戶請求進行處理
配置好web.xml後須要創建Struts2的核心配置文件,位置就是項目下的src目錄中,創建struts.xml文件,他負責配置全部的請求對應各類類或者方法,因此是核心配置文件,基本的結構以下:
1 <?xml version="1.0" encoding="UTF-8" ?> 2 <!DOCTYPE struts PUBLIC 3 "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 4 "http://struts.apache.org/dtds/struts-2.3.dtd"> 5 <struts> 6 7 8 </struts>
頭部是聲明,咱們全部的配置都寫在<struts></struts>標籤的內部,那麼寫一個最簡單的配置:
1 <package name="default" namespace="/" extends="struts-default"> 2 <action name="hellostruts2" class="net.zengzhiying.action.HelloStruts2Action"> 3 <result>/result.jsp</result> 4 </action> 5 6 <action name="login" method="login" class="net.zengzhiying.action.HelloStruts2Action"> 7 <result>/login.jsp</result> 8 </action> 9 </package>
在這裏,一個action就負責處理一個請求,packge咱們使用的默認包,當有多個packge時,name必定要區分開,namespace就是訪問的空間,咱們的項目名是HelloStruts2,若是命名空間是/test那麼應該訪問,http://localhost:8080/HelloStruts2/test/自定義的action
第一個action對應的訪問路徑就是http://localhost:8080/HelloStruts2/hellostruts2.action固然默認也能夠不加action
第二個action對應的就是http://localhost:8080/HelloStruts2/login.action
而後去創建一個Action類,就是HelloStruts2Action,類名命名必須是以Action結尾的駝峯命名,而且繼承於ActionSupport類,具體代碼以下:
1 package net.zengzhiying.action; 2 3 import com.opensymphony.xwork2.ActionSupport; 4 5 public class HelloStruts2Action extends ActionSupport { 6 7 private static final long serialVersionUID = 1L; 8 9 @Override 10 public String execute() throws Exception { 11 System.out.println("執行Action"); 12 13 return SUCCESS; 14 } 15 16 //新增自定義方法 17 public String login() { 18 return SUCCESS; 19 } 20 21 }
若是前面配置文件沒指定method屬性,默認訪問的方法就是execute方法,咱們另外還自定義了一個login方法,SUCCESS常量返回了默認的<result>指定的視圖,下面創建對應的jsp文件
result.jsp
1 <%@ page language="java" contentType="text/html; charset=UTF-8" 2 pageEncoding="UTF-8"%> 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 4 <html> 5 <head> 6 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7 <title>成功視圖</title> 8 </head> 9 <body> 10 Hello Struts2 11 </body> 12 </html>
另外login.jsp的創建也是同樣,就不列出了,如今一個基本的Struts2應用就建好了,如今啓動服務器,訪問便可看到結果:
而後我麼看控制檯也進行了打印輸出
同時訪問login也是相同的效果
以上就是基本的配置了,另外在配置文件struts.xml中還能夠配置感嘆號、通配符等多種靈活的訪問方式,還能夠配置訪問後綴等參數,同時Struts2框架強大的功能更遠不止這些,還須要不斷地學習研究