在學習struts2之前,首先我們要明白使用struts2的目的是什么?它能給我們帶來什么樣的好處?
設計目標
? ? Struts設計的第一目標就是使MVC模式應用于web程序設計。在這兒MVC模式的好處就不在提了。
技術優勢
? ? Struts2有兩方面的技術優勢,一是所有的Struts2應用程序都是基于client/server HTTP交換協議,The?JavaServlet API揭示了Java?Servlet只是Java API的一個很小子集,這樣我們可以在業務邏輯部分使用功能強大的Java語言進行程序設計。
? ? 二是提供了對MVC的一個清晰的實現,這一實現包含了很多參與對所以請求進行處理的關鍵組件,如:攔截器、OGNL表達式語言、堆棧。
?
? ? 因為struts2有這樣目標,并且有這樣的優勢,所以,這是我們學習struts2的理由,下面,我們在深入剖析一下struts的工作原理。
工作原理
? ? Suruts2的工作原理可以用下面這張圖來描述,下面我們分步驟介紹一下每一步的核心內容
看到上面的解釋,如果有困惑,先不用著急,我們先做一個實例,通過實例來理解上面的解釋,我想這是對于初學者最佳的學習路線,好了,下面我就帶領大家一到進入Struts2的世界。
所謂工欲善其事必先利其器,我們需要先把Struts2的配置jar文件下載好,以便接下來的開發使用,進入Struts官網,下載你需要的Struts版本,這里我們用到的是struts-2.3.16.1,下載好Struts版本,解壓,關于jar包的管理,個人建議,大家將我們經常使用的jar文件,統一分類保存在一個位置,這樣方便我們后續進行jar的引用,我們知道eclipse為我提供的有一個User libraries,我們可以添加自己的libraries來管理我們的jar文件。
下載好我們的Struts,下面我們需要下載一個Tomcat服務器,用來部署我們的Struts項目,這里需要說明的時,安裝Tomcat之前必須安裝JAVA jdk,否則將會出現安裝不成功提示,還有一點需要說明的是,Tomcat這里建議大家安裝解壓版本,方便我們的接下來myEclipse的集成,做好這些準備工作,下面我們就可以開始我們第一個Struts2項目開發了。
打開我們的myEclipse,將我們剛剛安裝好的Tomcat服務器集成上,點擊myEclipse上方的Window--》preferences:
配置好Tomcat,下面創建一個Helloword工程,將我們的jar文件導入,這里教大家一個小技巧,這樣以后我們再導入jar文件時就會方便很多,具體操作如下:
導入jar文件后,我們需要配置一些我們的Struts2環境,打開我們的工程WebRoot下的WEB-INF,找到web.xml,添加Struts2的基本配置信息:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"><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><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list> </web-app>
配置好我們的web.xml,下面添加我們的Struts.xml文件,這個文件如何編寫呢?答案很簡單,打開我們的Struts解壓文件,找到apps下的struts2-blank,解壓該文件,解壓后找到struts2-blank\WEB-INF\classes下的struts.xml,將這個文件拷貝到我們的工程src目錄下,到這里關于Struts開發環境的配置基本完成,下面我們就一起編寫一個簡單的Helloword,開啟我們的Struts2學習之旅。
我們的Action文件:
public class Helloword {public String helloword(){return "success";} }
我們的Struts配置文件:
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts><!-- <constant name="struts.enable.DynamicMethodInvocation" value="false" />--> <!-- 設是否為調試模式 --> <!-- <constant name="struts.devMode" value="true" />--><!-- <package name="default" namespace="/" extends="struts-default">--><!-- 默認訪問文件 --> <!-- <default-action-ref name="index" />--><!-- 出錯處理文件 --> <!-- <global-results>--> <!-- <result name="error">/error.jsp</result>--> <!-- </global-results>--><!-- 錯誤類型 --> <!-- <global-exception-mappings>--> <!-- <exception-mapping exception="java.lang.Exception" result="error"/>--> <!-- </global-exception-mappings>--><!-- 訪問控制 --> <!-- <action name="index">--> <!-- <result type="redirectAction">--> <!-- <param name="actionName">HelloWorld</param>--> <!-- <param name="namespace">/example</param>--> <!-- </result>--> <!-- </action>--> <!-- </package>--><!-- <include file="example.xml"/>--><package name="default" namespace="/" extends="struts-default"><action name="helloword" class="com.edu.action.Helloword" method="helloword"><result name="success">/index.jsp</result></action></package></struts>
最終的目錄結構:
到這里我們的入坑篇就為大家介紹完畢,后續內容持續更新中。。。