對servlet,springmvc和Struts2的一些比較和看法
Tomcat處理一個http請求的過程:http://localhost:8080/test/index.jsp
1. 請求傳送到8080埠,被connector監聽到,建立request和response物件用來請求交換資料,並建立新的執行緒處理這個請求
2. Connector將該請求交給它所在的service的engine處理,並等待迴應
3. Engine根據請求的URL,匹配相應的虛擬主機
4. 匹配成功後,將請求交給此虛擬主機來處理
5. 虛擬主機獲得/test/index.jsp,匹配他所擁有的的context
6. Path為test的context獲得index.jsp,在裡面找到*.JSP的jspservlet
7. 呼叫jspservlet的doget,dopost方法
8. 執行完成後將response返回給engine
9. Engine將response返回給connector,再返回給客戶端瀏覽器
springMVC分發請求的過程
1. 發起請求到前端控制器
2. 前端控制器查詢handlerMapping查詢handler
3. 控制器呼叫介面卡執行handler
4. Handler處理完成之後會返回modelandview
5. 前端控制器解析modelandview,將其結析為真正的檢視返回view,填充到request作用域中
6. 前端控制器向用戶響應結果
Struts2接收 請求過程
1. 接收http請求,根據請求
2. 建立該action的代理物件
3. 通過Struts攔截器對action物件屬性進行賦值
4. 呼叫action的相關方法拿到返回結果
5. 通過攔截器將action中的屬性值填寫到模板檔案中
6. response響應給瀏覽器
通過以上servlet,springmvc,struts2處理請求方式可以看出,三種處理方式都是通過解析URL,再將解析結果與自身的一個mapping檔案相比較,再將請求交給相應的controller,servlet或者是action來處理,處理完之後,將結果通過JSP或者其他檢視工具裝換傳給瀏覽器的,servlet
而servlet中是通過重寫doGet,doPost方法來實現呼叫業務邏輯的(即service層)不同調用,重寫service(),則會將業務邏輯放到servlet中,不會呼叫doGet(),doPost()方法,相對比而言,springmvc提供的方式跟靈活一些,也更加好理解一些
相關推薦
對servlet,springmvc和Struts2的一些比較和看法
Tomcat處理一個http請求的過程:http://localhost:8080/test/index.jsp1. 請求傳送到8080埠,被connector監聽到,建立request和response物件用來請求交換資料,並建立新的執行緒處理這個請求2. Connecto
SpringMVC和Struts2區別比較
view dispatch blog 前端控制器 servlet sdn 對象 del 多例 區別1: Struts2 的核心是基於一個Filter即StrutsPreparedAndExcuteFilterSpringMvc的核心是基於一個Servlet即Dispatch
SpringMVC和Struts2的比較的優點
我們用Struts2時採用的傳統的配置檔案的方式,並沒有使用傳說中的0配置。spring3 mvc可以認為已經100%零配置了(除了配置spring mvc-servlet.xml外)。 Spri
java中如何使用空參構造方法自動生成不同名字的對象,使用非靜態的屬性和靜態屬性有什麽區別,原因是什麽?如何理解static關鍵字
區別 關鍵字 內部 方法 屬性 count per setname person 空參構造自動生成對象時,使用非靜態的屬性 代碼: package com.swift; //使用無參構造方法自動生成對象,序號不斷自增 public class Person { p
對陣列和物件一些自己的看法
演算法使效率變得不同,演算法在陣列上運用的基數很大,陣列與物件之間非常相似的地方就是陣列中的每個元素都對應一個下標,而物件中每個鍵值對是對應的,正因為如此,資料結構也變得清晰,當有等級關係的資料,可以用陣列來儲存,先處理事件n及n的分支,在處理n+1。沒有等級的資料,也就是類
效能特性測試系列1——STL容器,QT容器效能相關比較和總結
閒話就不多扯了,本次測試了qt容器,和stl容器相關的效率,增加自己的理解,畢竟耳聽為虛,眼見為實,書和資料怎麼說都只是一個理論,直接測試效能才是王道。 流程 qt,stl容器對應關係對比->橫向比較每個對應關係容器效率->縱向比較
Spring MVC和Struts2的比較的優點
我們用struts2時採用的傳統的配置檔案的方式,並沒有使用傳說中的0配置。spring3 mvc可以認為已經100%零配置了(除了配置spring mvc-servlet.xml外)。 Spring MVC和Struts2的區別: 1. 機制:spring mvc的
隨筆55 Struts1和Struts2的區別和對比
tro 輸出 servlet 更強 api port java action 接口 Action 類: ? Struts1要求Action類繼承一個抽象基類。Struts1的一個普遍問題是使用抽象類編程而不是接口,而struts2的Action是接口。 ? Struts
EHCI和OHCI的比較和區別
目前專案涉及到了USB裝置,不可避免的涉獵到UHCI OHCI EHCI 那麼它們到底有啥區別呢?如何區分? 什麼是 ehci?什麼是 ohci?就是host controller 的介面.從硬體上來說,usb 裝置要想工
mysql資料庫引擎MyISAM和InnoDB的比較和使用場合
資料庫中資料管理的一種方式,MySQL支援插入式的儲存引擎,也就是說你同一資料庫中的資料表可以選擇不同儲存引擎 檢視mysql版本 mysql> select version(); +-----------+ | version() | +-----------+
mysql in和exists效能比較和使用
in 是把外表和內表作hash 連線,而exists是對外表作loop迴圈,每次loop迴圈再對內表進行查詢。一直以來認為exists比in效率高的說法是不準確的。 如果查詢的兩個表大小相當,那麼用in和exists差別不大。 如果兩個表中一個較小,一個是大表,則子查詢
Struts1和Struts2的區別和對比
Action 類: • Struts1要求Action類繼承一個抽象基類。Struts1的一個普遍問題是使用抽象類程式設計而不是介面。 • Struts 2 Action類可以實現一個Action介面,也可實現其他介面,使可選和定製的服務成為可能。Struts2提供一個
struts3.0的上傳改進和struts2--上傳和下載
package action; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import org.apache.struts2.ServletActionContext; impor
etcd和redis的比較和日常使用場景
個人觀點:etcd的紅火來源於kurbernetes用etcd做服務發現,而redis的興起則來源於memcache快取本身的侷限性。 etcd是一種分散式儲存,更強調的是各個節點之間的通訊,同步,確保各個節點上資料和事務的一致性,使得服務發現工作更穩定,本身
對find,xargs,grep和管道的一些深入理解
發送 文件名 rgs rom 輸入 很多 () option 理解 轉自於:http://fatmouse.xyz/2016/05/10/2016-05-10-find-grep-xargs-and-pipe/ 問題 相信大家都知道在目錄中搜索含有固定字符串文件的命令:
1、試對程式,程序,執行緒的慨念和功能進行比較?
答:程式 是計算機指令的集合它,以檔案的形式儲存在磁碟上。 程序是一個程式在其 自身的地址空間中的一次執行活動。 程序是資源申請、排程和獨立執行的單位,因此,它使用系統中的執行資源,而程式不能申請系統資源,不能被系統排程,也不能作為獨立執行的單位,因此,它不佔系統的執行資源。 執行緒:程序中的一個單一的連續控
【Linux】- 對find,xargs,grep和管道的一些理解
問題 相信大家都知道在目錄中搜索含有固定字串檔案的命令: find . -name '*.py' |xargs grep test 剛開始的時候,我不熟悉xargs命令,所以直接使用的命令是: find . -name '*.py' |grep test 結果並不是自己所期望的。
為什麼做java的web開發我們會使用struts2,springMVC和spring這樣的框架?
今年我一直在思考web開發裡的前後端分離的問題,到了現在也頗有點心得了,隨著這個問題的深入,再加以現在公司很多web專案的控制層的技術框架由struts2遷移到springMVC,我突然有了一個新的疑問無法得到正確的解釋,為什麼我們現在做java的web開發,會選擇struts2或者springMVC這樣
初識和利用Servlet,獲取和顯示頁面提交的資料以及對MySQL資料庫的簡單操作 7.04
Servlet:web伺服器端的程式設計技術。是繼承了javax.servlet.http.HttpServlet類的Java類。由支援servlet的web伺服器(tomcat)呼叫和啟動執行。一個
SpringMVC和Struts2的執行流程,面試中簡單回答
1、SpringMVC的執行流程: 傳送請求——>DispatcherServiet捕獲——>HandlerMapping查詢Handler返回HandlerExecutionChain——>執行Handler返回ModelAndView ——>選擇