1. 程式人生 > >struts2 執行原理

struts2 執行原理

1.1 簡單例子
先做一個最簡單的struts2的例子:在瀏覽器中請求一個action,然後返回一個字串到jsp頁面上顯示出來。

第一步:把struts2最低配置的jar包加入的專案中。
commons-logging-1.0.4.jar
freemarker-2.3.8.jar
ognl-2.6.11.jar
struts2-core-2.0.11.jar
xwork-2.0.4.jar

第二步:在web.xml中加入攔截器配置。
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

第三步:把空的struts.xml配置檔案放到專案src下面。
<struts>

</struts>

第四部:編寫自定義的action類。
package test;
import com.opensymphony.xwork2.ActionSupport;
public class HelloAction extends ActionSupport {
private String str;
public String hello() {
this.str = "hello!!!";
return "success";
}
public String getStr() {
return str;
}
public void setStr(String str) {
this.str = str;
}
}

第五步:編寫struts.xml配置檔案。
<struts>
<package name="test" namespace="/np" extends="struts-default">
<action name="hello" class="test.HelloAction" method="hello">
<result name="success">/hello.jsp</result>
</action>
</package>
</struts>

第六步:編寫hello.jsp檔案。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Test</title>
</head>
<body>
<h1><s:property value="str"/></h1>
</body>
</html>

第七步:啟動tomcat,在瀏覽器中訪問:
http://localhost:8080/hello/np/hello.action
hello 是專案名字
np 名稱空間,對應namespace裡面的字串。
hello.action 其中hello對應action裡面的字串,“.action”表示請求的是一個action。

1.2 執行機制
1)客戶端在瀏覽器中輸入一個url地址。
2)這個url請求通過http協議傳送給tomcat。
3)tomcat根據url找到對應專案裡面的web.xml檔案。
4)在web.xml裡面會發現有struts2的配置。
5)然後會找到struts2對應的struts.xml配置檔案。
6)根據url解析struts.xml配置檔案就會找到對應的class。
7)呼叫完class返回一個字String,根據struts.xml返回到對應的jsp。


Struts2的核心就是攔截器。Struts.xml中所有的package都要extends="struts-default"。同理與所有的Java類都要extends自Object一樣。struts-default.xml裡面就是要做以上事情。


注:轉自:http://blog.csdn.net/zq9017197/archive/2010/10/22/5958627.aspx

相關推薦

struts2面試題:struts2執行原理&&interceptor與Filter

struts2執行原理 1、客戶端初始化一個指向servlet容器的請求。 2、這個請求經過一系列的過濾器(到FilterDispatcher初始化dispatch類)。 3、接著FilterDispatcher被呼叫,詢問ActionMapper來決定這個請求

Struts2執行原理

1、 在servlet容器啟動時載入web.xml,通過核心控制器FilterDispatcher載入struts.xml檔案並進行解析,將解析的資訊封裝在ActionMapper類中。 2、 客戶端傳送請求,請求被核心控制器FilterDispatcher進行攔截。 3、

struts2 執行原理

1.1 簡單例子先做一個最簡單的struts2的例子:在瀏覽器中請求一個action,然後返回一個字串到jsp頁面上顯示出來。第一步:把struts2最低配置的jar包加入的專案中。 commons-logging-1.0.4.jar f

從例項看struts2執行原理

1.1         簡單例子先做一個最簡單的struts2的例子:在瀏覽器中請求一個action,然後返回一個字串到jsp頁面上顯示出來。第一步:把struts2最低配置的jar包加入的專案中。         commons-logging-1.0.4.jar    freemarker-2.3.8.

例項展示struts2執行原理

1.1         簡單例子 先做一個最簡單的struts2的例子:在瀏覽器中請求一個action,然後返回一個字串到jsp頁面上顯示出來。   第一步:把struts2最低配置的jar包加入的專案中。          commons-logging-1.0.4.jar     freemarker-

Struts2工作原理執行流程圖

過濾器 map filters play servle 同時 cati 通過 spa 在struts2的應用中,從用戶請求到服務器返回相應響應給用戶端的過程中,包含了許多組件如:Controller、ActionProxy、ActionMapping、Configurati

struts2攔截器的執行原理以及攔截器和過濾器的區別

struts2攔截器的執行原理:     注意:struts2.1.3以後的版中下邊這張圖中的FilterDispatcher已經改為StrutsPrepareAndExecuteFilter     1.首先伺服器接受請求,首先載入web.xml,通過核心控制器Stru

Spring與Struts2整合的執行原理.

TomCat 啟動 –>載入web.xml檔案; 在web.xml檔案中 配置了Spring的監聽器,這個實現的是ServletContextListener介面,那麼當Web容器啟動的時候,這個監聽器就會執行. <listener>

關於onclick的執行原理

元素 jquery 父節點 之前 單選 onclick事件 集成 結構 出現 js 或者 jQuery 為文檔某一節點添加onclick事件的時候,添加的onclick事件會添加在原節點的onclick事件之後,不會覆蓋之前的onclick事件 如果不想讓原onclick

struts2工作原理

struts archive logs tro images src str hive www 摘取於:http://www.cnblogs.com/jy02444453/archive/2011/08/27/2155427.html struts2工作原理

Hadoop架構設計、執行原理具體解釋

下一個 發現 job調度 mmap tin 文件復制 必須 new 最大 1、Map-Reduce的邏輯過程 如果我們須要處理一批有關天氣的數據。其格式例如以下: 依照ASCII碼存儲。每行一條記錄每一行字符從0開始計數,第15個到第18個字符為年第25個到第29個字

ASP.NET MVC下的異步Action的定義和執行原理

urn des {0} 不同 exce .class 遠程 是否 了解 Visual Studio提供的Controller創建向導默認為我們創建一個繼承自抽象類Controller的Controller類型,這樣的Controller只能定義同步Action方法。如果我們

js解析器的執行原理

html 變化 ron 使用 meta utf 新的 class 而且 首先看一段代碼 <!DOCTYPE html> <html> <head> <meta charset="utf-8" />

Struts1.2,struts2.0原理分析

一個 servlet fault name 好友 rop pro 初學 原理分析 struts1原理:   1.首先我們表單提交到action   2.進入到web.xml   3.web.xml攔截*.do   4.交給ActionServlet   5.找到p

python解釋執行原理(轉載)

劃分 解釋器 轉換成 http 解釋型 輸出 行程 保護 相對 Python解釋執行原理   轉自:http://l62s.iteye.com/blog/1481421 這裏的解釋執行是相對於編譯執行而言的。我們都知道,使用C/C++之類的編譯性語言編寫的程序

gem5中event queue執行原理機制具體分析

執行 proc post tis pan roc view 函數實現 obj 搞清楚這個花了兩天時間,下面內容為簡略版。為了給自己賺點下載用的積分。如須要具體版本號。

程序執行原理

需要 clas 核心 臨時 硬件 存在 div 保存 blog 一個程序要運行,需要三個核心的硬件 CPU,中央處理器,是一塊超大規模的集成電路,負責處理數據或計算 內存,臨時的存儲數據(斷電後,數據就會消失),速度快,空間小,價格高 硬盤,永久的存儲數據,速度慢,空間大,

Python解釋器執行原理

python python解釋器 Python在執行時,首先會將.py文件中的源代碼編譯成Python的byte code(字節碼), 然後再由Python Virtual Machine(Python虛擬機)來執行這些編譯好的byte code。 這種機制的基本思想跟Java,.NET是一致的。 然

jsp頁面執行原理及獲取上下文根方式

展示 第一次 使用 繼續 發現 釋放 包含 情況 文件 一、在一個JSP文件第一次被請求時,JSP引擎把該JSP文件轉換成為一個Servlet。而這個引擎本身也是一個Servlet。jsp實質是屬於後臺。它的執行過程如下: (1)JSP引擎先把該JSP文件轉換成一個Java

struts2執行流程核心

nbsp 分享圖片 png 流程 .com mage 圖片 執行 info struts2執行流程核心