Struts2是一種基於MVC的輕量級的WEB應用框架。html
1.web應用框架,也就是說struts2的運行環境是一個web容器,運行於Web容器中的程序就必須遵循基本開發標準和規範:servlet標準和JSP標準(不一樣的Web服務器對於servlet標準和JSP的標準是不同的),對於struts2而言,它支持的Servlet標準最低版本要求是2.4,相對於JSP的最低版本要求是2.0。struts2做爲開發框架的運行環境提出了要求,要求其必須運行在JDK1.5版本以上。前端
2.輕量級,相對於重量級而言,指的是struts2在運行時,對web服務器的資源相對消耗較少,可是運行速度會相對快一些。web
3.基於MVC,Struts2着力於在MVC的各個部分爲咱們的開發提供了相應的幫助。基於Struts2框架的WEB應用的流程圖以下:apache
Contoller-FilterDispatcher數組
用戶請求首先到達前端控制器FilterDispatcher。FilterDispatcher負責根據用戶提交的url和struts.xml中配置,來選擇適合的動做(Action),讓Action來處理用戶請求。FilterDispacher實際上是一個過濾器,它是Struts2核心包裏的類,不須要咱們去開發,只要在web.xml中配置一下。服務器
Model-Actionapp
Action負責把用戶請求中的參數組成合適的數據模型。Struts2中的Action實現了ServeltAPI的解耦,因此在Action裏面就不須要再去直接使用HttpServletRequest與HttpServletResponse的接口。框架
View-Resulteclipse
視圖結果是用來把動做中獲取到的數據展示給用戶。ssh
Struts2項目資源
在Struts的官方網站 http://struts.apache.org 能夠找到Struts項目的相關資料信息。
Struts2項目的開發
前面咱們已經對struts2有了必定的瞭解,如今咱們就來編寫一個簡單的Hello World的應用程序,來展現咱們基本的struts2項目搭建。
1.添加Struts2的依賴庫
使用eclipse建立一個動態的Web工程,爲了讓該工程具備Struts2支持功能,咱們必須將Struts2框架的核心類庫添加到Web應用中。將Struts2框架lib路徑下的jar包導入咱們Web應用的lib路徑下,也就是咱們工程目錄下的" WebCOntentent\WEB-INF\lib"路徑下,如圖所示
如圖代表咱們的項目已經導入了Struts2所必須的類庫,咱們還須要修改web.xml 文件,讓該文件負責加載Struts2的框架。
2.在web.xml配置文件中添加Filter
Struts2的入口點就是一個過濾器,Struts2就須要按過濾器的方式來配置。在web.xml中配置Struts2的代碼以下:
<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>
3.咱們須要一個Jsp頁面來顯示信息
struts2的標籤庫,也是框架的一部分,是爲了解決頁面顯示數據,封裝簡單頁面邏輯而產生相似於HTML標記的組件(也能夠用jstl來寫)。
使用struts2標籤,須要在頁面添加以下的定義:
<% taglib prefix="s" uri="/struts-tags" %>
頁面代碼以下所示:
<% taglib prefix="s" uri="/struts-tags" %> <html> <head> <title>Hello World!</title> </head> <body> <h2><s:property value="message"/></h2> </body> </html>
4.編寫咱們的action類
爲了讓用戶開發的Action更加規範,Struts2爲咱們提供了一個Action的接口,是爲了使咱們的Action處理類更加的規範。
public class IndexAction extends ActionSupport {
//定義一個常量 給HW賦值 public static final String HW="Struts is up and running!"; private String message; public void setMessage(String message){ this.message=message; } public String getmassage(String message){ return message } public String execute(){
//給message添加一個字符串 setMassage(HW);
//2.返回的字符串,要跟配置文件一一對應,用於跳轉到指定的jsp頁面 return "success"; } }
Struts2還爲Action提供了一個實現類:ActionSupport。爲了方便實現action通常狀況下都會繼承ActionSupport類,並重載execute方法。
5.建立struts.xml的配置文件(必需要建立在src的目錄下):
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN" "http://struts.apache.org/dtds/struts-2.5.dtd"> <struts> <!-- 第1步:先定義一個包 ( 包名自定義)--> <package name="mypck" extends="struts-default"> <!-- 第2步:定義一個action,用於配置咱們的跳轉信息 class對應咱們建立的action類(包名.類名)method默認調用的是action類的默認方法execute方法--> <action name="index" class="ssh.IndexAction" method="execute">
<result name="success">WEB-INF/jsp/HelloWord.jsp</result> </action> </package> </struts>
基本的Struts2的框架就已經搭建好了。