初識Struts2
基礎瞭解:
框架的概念:
框架(framework)是整個或部分系統的可重用設計概念上的結構,用於解決或處理複雜的問題。
使用框架的好處:
可重用代碼、
可重用設計、
分佈式組件管理,便於組件的複用與分離、
結構統一
下降開發成本
JavaEE中的框架:
Struts:java領域最著名的框架,是MVC設計的事實標準。
Spring:JavaEE應用程序的集成框架,任何java程序都能從中受益。
Hibernate:最著名的ORM框架,實現數據層操做。
Struts2框架的介紹
Struts2是Struts1的下一代產品,是再Struts和webwork的技術基礎上進行了合併的全新MVC框架。
由於Struts2框架基本以WebWork爲技術核心,能夠說Struts2至關於WebWork2.0。
Struts2相對於Struts1的優點:(八個知識點重點學習)
(1)與JSP/Servlet低耦合
(2)業務模型不須要考慮線程安全
(3)業務模型爲POJO類
(4)表單模型的簡化
(5)豐富的視圖技術支持
(6)AOP和攔截器的使用
(7)完善的數據類型轉換
(8)OGNL表達式的支持
Struts框架是Apache致力於推高JavaEE技術標準的產物,MVC框架的公認標準。
傳統的Model2設計的缺陷:核心控制器在新增業務模型時須要同步修改Servlet業務模型,與ServletAPI耦合性高。
架構Struts2框架的步驟
(1)導入框架所需的jar包
(2)配置web.xml的核心控制器
<!-- 配置Struts核心控制器 -->
<filter>
<filter-name>struts</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<!-- 配置映射 -->
<filter-mapping>
<filter-name>struts</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>
(3)建立模型java
public class LoginAction extends ActionSupport {
@Override
public String execute() throws Exception {
return SUCCESS;
}
}
(4)配置Struts.xmlweb
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1.7//EN" "struts-2.1.7.dtd" >
<struts>
<package name="niit" extends="struts-default">
<action name="login" class="com.niit.action.LoginAction">
<result name="input">WEB-INF/error.jsp</result>
<result name="success">login.jsp</result>
<result name="login">tag.jsp</result>
</action>
</package>
</struts>
搭建注意點:
Struts2以過濾器做爲請求的攔截手段
核心控制器爲StrutsPreparenAndexecuteFilter
Struts.xml須要配置在classpath路徑下
Struts.xml中的package必須配置extends屬性,且值爲struts-default
Struts2執行流程:
簡單描述:
客戶端發送一個請求,請求通過核心控制器(filter) ,核心控制器會根據請求的URL找到在配置文件中對應的Action,執行action前會執行相關攔截器操做,而後找到對應的返回視圖,將處理獲得的數據一併返回給客戶端。