從零打造線上網盤系統之STRUTS2框架起步
阿新 • • 發佈:2018-11-14
本篇目標
- 掌握Struts2工作流程
- 掌握Struts2控制器
- 掌握Struts2XML配置
- 掌握Struts2註解配置
- 瞭解Struts2的瀏覽器外掛
Struts2概述
Struts2是一個基於MVC設計模式的Web應用框架,它本質上相當於一個servlet,在MVC設計模式中,Strus2作為控制器(Controller)來建立模型與檢視的資料互動。Struts2使用了大量的攔截器來處理使用者請求,從而將業務邏輯控制器和ServletAPI分離
Struts2工作流程
- 客戶端發起請求
- 核心控制器FilterDispatcher攔截請求呼叫Action
- 呼叫Action的execute方法前呼叫一系列的攔截器
- 呼叫execute執行業務邏輯
- 返回結果
控制器是What?
包含execute方法的POJO既可以作為控制器,即一個簡單的JAVA類包含一個execute()方法就可以作為控制器,同時控制器具有封裝客戶端請求引數的能力.
public class TestAction {
public String execute() throws Exception {
return "test";
}
}
Struts2XML配置
XML配置完整工程示例原始碼下載
匯入struts依賴jar
<!-- https://mvnrepository.com/artifact/org.apache.struts/struts2-core --> <dependency> <groupId>org.apache.struts</groupId> <artifactId>struts2-core</artifactId> <version>2.5.18</version> </dependency>
web.xml配置Struts2攔截器
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
編寫struts.xml
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="default" extends="struts-default">
<action name="hello" class="com.jimisun.action.TestAction">
<result name="hello">/WEB-INF/jsp/hello.jsp</result>
</action>
</package>
</struts>
編寫控制器
public class TestAction {
public String execute() throws Exception {
return "hello";
}
}
配置好以上步驟即可訪問路徑http://localhost:8080/hello.action
Struts2註解配置
註解配置Struts2完整示例原始碼下載
如果需要使用註解開發,則需要增加struts2-convention-plugin的Jar
<!-- https://mvnrepository.com/artifact/org.apache.struts/struts2-convention-plugin -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-convention-plugin</artifactId>
<version>2.5.18</version>
</dependency>
那麼在你的Action中就可以這樣編寫Action,不需要再到struts.xml中進行配置
@ParentPackage("struts-default")
@Namespace("/test")
public class TestAction {
@Action(value = "hello", results = {
@Result(name = "hello", location = "/WEB-INF/jsp/hello.jsp")
})
public String hello() throws Exception {
return "hello";
}
}
Struts2的瀏覽器外掛
在進行Struts2開發的時候隨著專案的增大,你所需要處理的路徑和方法對映越多,有時候會讓你手忙腳亂,而struts2-config-browser-plugin外掛很好的幫你解決了這個問題,只需要Jar包依賴即可
<!-- https://mvnrepository.com/artifact/org.apache.struts/struts2-config-browser-plugin -->
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-config-browser-plugin</artifactId>
<version>2.5.18</version>
</dependency>
本章總結
Struts2的起始配置比較簡單,但是Struts2其他相關配置就比較繁瑣了,不可掉以輕心
雜家不如專家,精益求精