1. 程式人生 > >[java面試] Java面試之struts1與struts2的區別

[java面試] Java面試之struts1與struts2的區別

 1.都是MVC的WEB框架,

  2 struts1的老牌框架,應用很廣泛,有很好的群眾基礎,使用它開發風險很小,成本更低!struts2雖然基於這個框架,但是應用群眾並多,相對不成熟,未知的風險和變化很多,開發人員相對不好招,使用它開發專案的風險係數更大,用人成本更高!

  3.struts2畢竟是站在前輩的基礎設計出來,它會改善和完善struts1中的一些缺陷,struts1中一些懸而未決問題在struts2得到了解決。

  4.struts1的前端控制器是一個Servlet,名稱為ActionServlet,struts2的前端控制器是一個filter,在struts2.0中叫FilterDispatcher,在struts2.1中叫StrutsPrepareAndExecuteFilter。

  5.struts1的action需要繼承Action類,struts2的action可以不繼承任何類;struts1對同一個路徑的所有請求共享一個Action例項,struts2對同一個路徑的每個請求分別使用一個獨立Action例項物件,所有對於struts2的Action不用考慮執行緒安全問題。

  6.在struts1中使用formbean封裝請求引數,在struts2中直接使用action的屬性來封裝請求引數。

  7.struts1中的多個業務方法放在一個Action中時(即繼承DispatchAction時),要麼都校驗,要麼都不校驗;對於struts2,可以指定只對某個方法進行校驗,當一個Action繼承了ActionSupport且在這個類中只編寫了validateXxx()方法,那麼則只對Xxx()方法進行校驗。

  (一個請求來了的執行流程進行分析,struts2是自動支援分模組開發,並可以不同模組設定不同的url字首,這是通過package的namespace來實現的;struts2是支援多種型別的檢視;struts2的檢視地址可以是動態的,即檢視的名稱是支援變數方式的,舉例,論壇發帖失敗後回來還要傳遞boardid。檢視內容顯示方面:它的標籤用ognl,要el強大很多,在國際化方面支援分模組管理,兩個模組用到同樣的key,對應不同的訊息;)

  與Struts1不同,Struts2對使用者的每一次請求都會建立一個Action,所以Struts2中的Action是執行緒安全的。

  struts1配置檔案中的redirect檢視的url不能接受引數,而struts2配置檔案中的redirect檢視可以接受引數。

相關推薦

[java面試] Java面試struts1struts2區別

 1.都是MVC的WEB框架,   2 struts1的老牌框架,應用很廣泛,有很好的群眾基礎,使用它開發風險很小,成本更低!struts2雖然基於這個框架,但是應用群眾並多,相對不成熟,未知的風險和變化很多,開發人員相對不好招,使用它開發專案的風險係數更大,用人成本更高!   3.struts2畢竟是站在前

JAVA環境變數配置PATHCLASSPATH區別

一丶PATH path是系統用來指定可執行檔案的完整路徑,即使不在path中設定JDK的路徑也可執行JAVA檔案,但必須把完整的路徑寫出來,如C:\Program Files\Java\jdk1.6.0_10\bin\javac TheClass.java。path是用來搜尋所執行的可執行檔

Java 面試題四 Struts1Struts2之間的區別

      1.執行緒模式: Struts1 Action是單例模式並且必須是執行緒安全的,因為僅有Action的一個例項來處理所有的請求。 單例策略限制了Struts1 Action能做的事,並且要在開發時特別小心,Action資源必須是執行緒安全的或同步的。 Struts2 Action物件為每一個請求產

JAVA多線程volatile synchronized 的比較

@override effect process 棧空間 完成 內存可見性 沒有 hash 主從 一,volatile關鍵字的可見性 要想理解volatile關鍵字,得先了解下JAVA的內存模型,Java內存模型的抽象示意圖如下: 從圖中可以看出: ①每個線程都有一個自己的

java 多線程取消關閉

ket execute 是否 擁有 函數 恢復 響應 lean shu   要使線程安全,快速,可靠的停下來並不是一件容易的事情。java並沒有提供任何機制來安全的終止線程。但是java提供了中斷(interrupt)使一個線程可以終止另一個線程的當前工作   每個線程都有

Java基礎語言要素識別符號註釋

1.識別符號 識別符號由字母(Unicode字符集中的一小部分)、數字、下劃線(_)和美元符號$組成,但識別符號不能由數字開頭,根據阿里命名規範,識別符號最好不要由下劃線和美元符號開頭。 識別符號不能是Java關鍵字和保留字(const、goto)。 雖然true、false、null不是J

JAVA多執行緒volatile synchronized 的比較

一,volatile關鍵字的可見性 要想理解volatile關鍵字,得先了解下JAVA的記憶體模型,Java記憶體模型的抽象示意圖如下: 從圖中可以看出: ①每個執行緒都有一個自己的本地記憶體空間--執行緒棧空間???執行緒執行時,先把變數從主記憶體讀取到執行緒自己

java二維碼生成解析

 1.引入依賴 <dependency> <groupId>com.google.zxing</groupId> <artifactId>javase</a

java多執行緒synchronizedlock、waitnotify

class Res { public String name; public String sex; public Boolean flag = false; public Lock lock = new ReentrantLock(); Condition condition = lock.new

Java多執行緒狀態生命週期

執行緒的生命週期 執行緒建立並啟動後,不是一啟動就進入執行狀態,也不會一直處於執行狀態。 執行緒啟動後不可能一直霸佔CPU,所以CPU會在多執行緒之間切換,於是執行緒狀態也會多次在執行、阻塞之間切換 線上程的生命週期中,執行緒共有5種狀態,在任意時刻,執行

面試常見題sizeofstrlen的區別

     前段時間一直在忙論文和專利的事情,沒時間去看一些c++/資料結構等筆試面試要用的知識,雖說做科研一直用的是c語言,但是平時用的哪些知識太狹隘了,主要集中在一些聚類演算法上面,並沒有多少時間去探討一些c++/c底層的一些東西,現在馬上要找工作了,著手看了一些東西,現

Java進階學習集合泛型(1)

[TOC](目錄) ## 1.集合 #### 1.1.集合是什麼 之前的基礎篇中我們知道了一種資料結構:陣列,可以存放很多資料。但是資料有很大的侷限性: - 支援的資料型別單一 - 宣告時需要指定大小,大小固定,可擴充套件性差 - 連續的儲存單元,對記憶體要求苛刻 那麼是否有其他的資料結構或者資料型

Struts1Struts2的那些事

需求 ict cin data lap 升級 otto requires exec 一、概述 Struts1以ActionServlet作為核心控制器,由ActionServlet負責攔截用戶的全部請求。Struts1框架有3個重要組成部分:Ac

Struts1Struts2對比分析

     Struts2其實並不是一個陌生的Web框架,Struts2是以Webwork的設計思想為核心,吸收了Struts1的優點,因此,可以認為Struts2是Struts1和Webwork結合的產物。 簡單來說二者的區別是:   

Java中的 FutureTask的示例Runnable 區別

Java中存在Runnable、Callable、Future、FutureTask這幾個與執行緒相關的類或者介面,在Java中也是比較重要的幾個概念,我們通過下面的簡單示例來了解一下它們的作用於區別。 package demo7; import java.uti

java.io.File類中mkdir()mkdirs()區別

在Java中對檔案進行操作時常常用到java.io.File.mkdir()和java.io.File.mkdirs()兩個方法來建立一個目錄(資料夾),這兩個方法非常相似,都是無引數且返回值都為boolean型別的方法,都是用於建立指定路徑名稱對應的目錄,但二者主要區別如

jqueryempty()remove()區別

cnblogs 指定 log 區別 com expr 節點 remove 刪除 要用到移除指定元素的時候,發現empty()與remove([expr])都可以用來實現。可仔細觀察效果的話就可以發現。empty()是只移除了 指定元素中的所有子節點,拿$("p").empt

【圖靈學院15】極致優化-高性能網絡編程BIONIO區別

ice redis let bject 模型 vao 傳輸 示例 ava 一、Java IO概念 1. 一個http請求節點   數據傳輸 1)網絡傳輸   TCP、UDP 2)通信模型   BIO、NIO、AIO   數據處理 3)應用協議   HTTP、RMI、WEB

SpringMVCStruts2區別比較總結

req 攔截器 返回 方式 log 編碼 strong 原則 麻煩 1、Struts2是類級別的攔截, 一個類對應一個request上下文,SpringMVC是方法級別的攔截,一個方法對應一個request上下文,而方法同時又跟一個url對應,所以說從架構本身上Spring

UnityUpdateFixedUpdate區別

str 點擊 區別 com unity 3-0 auto ongui info 下面這段代碼演示遊戲暫停 using UnityEngine; using System.Collections; public class GamePauseTest : M