1、Struts2簡介:java
1.什麼是Struts2?
著名的SSH三大框架分別爲:表現層(Struts)、業務邏輯層(Spring),持久化層(Hibernate).
Struts2是在WebWork2基礎上發展而來的MVC框架,儘管Struts2與Struts在名字上很像,但代碼編寫風格上幾乎是徹底不同的。
Struts2比Struts更優秀,修復了Struts的許多Bug和缺點。
2.Struct2框架的優勢?
1.Struts2是非侵入式設計
Struts2的Action類爲POJO類,即不依賴於Servlet API和Struts API。
2.Struts2提供了攔截器,利用攔截器能夠進行AOP編程,實現如權限攔截等功能。
3.Struts2提供了類型轉換器,能夠將特殊的請求參數轉換成須要的類型。
4.Struts2支持多種表現層技術,如JSP、freeMarker、vectocity等。
5.Struts2的輸入驗證能夠對指定的方法進行驗證。
6.提供了全局範圍、包範圍和Action範圍的國際化資源文件管理實現。
web
2、搭建Struts2開發環境apache
1.新建一個Web Project工程。編程
2.導入所須要用到的Structs2的jar包,這裏暫時先只導入Structs核心jar包。tomcat
Structs2全部jar包下載地址http://struts.apache.org/download.cgi#struts23163app
核心jar包:框架
xwork-core-2.1.6.jar: Structs2框架的核心類庫
struts2-core-2.1.8.1.jar: XWork類庫,Structs2在其上構建
ognl-2.7.3.jar:對象圖導航語言(Object Graph Navigation Language),Structs2框架經過其讀寫對象屬性。
freemarker-2.3.15.jar: Structs2的UI標籤的模板使用FreeMarker編寫
commons-logging-1.0.4.jar: ASF出品的日誌包,Structs2框架使用這個日誌包來支持Log4J和JDK1.4+的日誌記錄。
commons-fileupload-1.2.1.jar: 文件上傳組件,2.1.6版本後必須加入此文件。jsp
方法一:測試
方法二:url
3.複製Structs2.xml文件到項目的src目錄下。
Structs2.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> </struts>
4.在Struct中,Structs2框架式經過Servlet啓動的。而在Structs2中,Structs2框架式經過Filter啓動的。
Structs2在web.xml中的啓動配置以下:
<?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>
注意:自動Structs2.1.3之後,下面的FilterDispatcher已經標註爲過期
<filter-class>org.apache.structs2.dispatcher.FilterDispatcher</fileter-class>
5.測試Structs2是否搭建成功,發佈程序項目,開啓tomcat服務。