1. 程式人生 > >Struts2面試題 Struts2工作流程、Struts2原理

Struts2面試題 Struts2工作流程、Struts2原理

下面是Struts2的工作流程:

1、客戶端提交一個HttpServletRequest的請求。
2、這個請求經過一系列的過濾器(ActionContextCleanUp、其他過濾器、StrutsPrepareAndExecuteFilter)。
3、StrutsPrepareAndExecuteFilter詢問ActionMapper是否需要呼叫某個Action來處理這個請求,如果ActionMapper決定需要呼叫某個Action,則把請求的處理交給ActionProxy。
4、ActionProxy通過ConfigurationManager(struts.xml)詢問框架的配置檔案,找到需要呼叫的Action類。例如,使用者註冊示例將找到UserRegister類。
5、ActionProxy建立一個ActionInvocation例項,同時ActionInvocation通過代理模式呼叫Action。但在呼叫之前,ActionInvocation會根據配置載入Action相關的所有Interceptor(攔截器)。
6、 一旦Action執行完畢,ActionInvocation負責根據struts.xml中的配置找到對應的返回結果result 。
7、最後通過HTTPServletResponse返回給客戶端響應。

StrutsPrepareAndExecuteFilter為何會替換FilterDispatcher:
因為FilterDispatcher不能實現Action執行前呼叫自定義攔截器

相關推薦

SpringMVC+MyBatis試題 SpringMVC工作流程MyBatis工作流程

SpringMVC的工作流程 使用者傳送請求至前端控制器DispatcherServlet。 DispatcherServlet收到請求後呼叫HandlerMapping處理器對映器。

Struts2試題 Struts2工作流程Struts2原理

下面是Struts2的工作流程: 1、客戶端提交一個HttpServletRequest的請求。 2、這個請求經過一系列的過濾器(ActionContextCleanUp、其他過濾器、St

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

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

史上最全的 struts2 試題

1 Struts2與Struts1的聯絡與區別 為什麼要用Struts2struts1與struts2都是mvc框架的經典實現模式。Struts2不是從Struts1升級而來,而是有WebWork改名而來,而WebWork只是Xwork加了很多WEB攔截器而已.區別: 1.

Java面試----2018年最新Struts2試題

1、描述Struts2的工作原理答:客戶端傳送請求--》請求經過一系列過濾器--》FilterDispatcher通過ActionMapper來決定這個Request需要呼叫哪個Action --》FilterDispatcher把請求的處理交給ActionProxy--》通

“玩轉”Java系列—Struts2 試題分析

1. 簡述 Struts2 的工作流程: ①. 請求傳送給 StrutsPrepareAndExecuteFilter ②. StrutsPrepareAndExecuteFilter 判定該請求是否是一個 Struts2 請求 ③. 若該請求是一個 Struts2

Struts2試題1

struts2有哪些優點? 1)在軟體設計上Struts2的應用可以不依賴於Servlet API和struts API。 Struts2的這種設計屬於無侵入式設計; 2)攔截器,實現如引數攔截注入等功能; 3)型別轉

業余草分享試題,JVM結構GC工作機制詳解

影響 根節點 tac 關註 共享 產生 我想 tar 效果 題外話:最近在應聘阿裏2015暑期實習,感觸頗多。機會總是留給有準備的人的,所以平常一定要註意知識的鞏固和積累。知識的深度也要有一定的理解,不比別人知道的多,公司幹嘛選你?關於JVM和GC,我相信學java的絕大部

九章算法-試題總結(算法強化算法系統設計高清視頻觀看)

1 落單的數 題目描述: 有2n+1個數,其中2n個數兩兩成對,1個數落單,找出這個數。要求O(n)的時間復雜度,O(1)的空間復雜度。 進階問題:如果有2n+2個數,其中有2個數落單,該怎麽辦? 分析 初階:將2n+1個數異或起來,相同的數會

SQL試題-行列互換-if【case when】

alt 技術 我們 rim case when ade 建表 行數 prim http://www.cda.cn/view/21469.html tb_lemon_grade中,表中字段id,student_name,course,score分別表示成績id,學生姓名,課

Nginx負載均衡 ssl工作流程生產ssl密鑰對Nginx配置ssl

LinuxNginx負載均衡 負載均衡即是代理服務器將接收的請求均衡的分發到各服務器中編輯虛擬主機配置文件vim /usr/local/nginx/conf/vhost/ld.conf 在配置文件中添加如下內容 upstream qq_com { ip_hash; server 61.135.

試題小記:1統計字符串出現的次數,2約瑟夫環問題

lse UNC aaa ret nal 約瑟夫環問題 b2c else 用法 今天面到了一個比較有意思的筆試題,先記錄一下:1.字符串類似‘aaabbccddd’,寫個方法得出‘3a2b2c3d‘,即統計字符串出現的個數$arr = str_split(‘aaabbccdd

Nginx基本概念模組化思想工作流程工作原理

前言: 近日因需拓展學習,在網上收集Nginx相關資料。本文介紹其基本概念和基本原理,為以後的應用大小基礎。本人內容為轉載,組合,僅供學習。 一 、Nginx基本概念 (1)、介紹        

試題】連結串列棧和佇列

1.順序儲存結構 順序儲存結構,即陣列。優點:節省儲存空間,隨機存取表中元素;缺點 :插入和刪除操作需要移動元素 順序儲存結構的插入與刪除操作程式碼實現 public void insert(int data){ if (le

JDBC工作流程JNDI連線池

JDBC工作流程(如何連線資料庫): 1.載入驅動 2.建立連線 3.執行SQL語句 4.得到處理結果 import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import ja

[C/C++筆試試題] 程式設計基礎 - 變數字元編譯篇

10 變數 變數是一段有名字的連續儲存空間,它是程式中資料的臨時存放場所。   10.1 全域性變數和靜態變數有什麼異同? 相同:都在靜態儲存區分配空間,生命週期與程式生命週期相同。 區別:全域性變數的作用域是整個程式,它只需要在一個原始檔中定義,就可以作用於所有的原始檔。而靜態變數只在定

java試題整理-微服務SpringBootSpringCloud

什麼是微服務? 微服務架構是一種架構模式或者說是一種架構風格,它提倡將單一應用程式劃分為一組小的服務,每個服務執行在其獨立的自己的程序中,服務之間相互協調、互相配合,為使用者提供最終價值。服務之間採用輕量級的通訊機制互相溝通(通常是基於HTTP的RESTful

JAVA試題1:JDKJREJVM關係是什麼?

JDK(Java Development Kit)即為Java開發工具包,包含編寫Java程式所必須的編譯、執行等開發工具以及JRE。開發工具如:用於編譯java程式的javac命令、用於啟動JVM執行java程式的java命令、用於生成文件的javadoc命令以及用於打包的jar命令等等。&nbs

200道iOS試題試題整理,底層技術亮點公司需要的這裡都有

100家知名企業今年來iOS面試題合集: 你要的這裡都有; 企業要的這裡也有; 從基礎開始到進階、深入底層 整理出188個面試題,全是乾貨 這些全部是題目跟類目,每個題目都會有相對的答案,由於字數太多所以我整理出一個文件,文件獲取地址,關注作者微信公眾號獲取, 目

試題4:陣列指標引用的聯絡區別

陣列和指標??? 從兩個方面來看,一是作為一個語言,陣列是必須要支援的一種陣列型別,原因很簡單,陣列是線性表的直接體現。而從編譯器設計者的角度來看,如果為陣列專門設計一套實現標準會非常繁雜(事實上,後來C++完成了這一任務,它就是標準庫中的vector容器)。這一對矛盾最後