springmvc執(zhí)行流程簡介?cookie和session區(qū)別
各位老鐵們好,相信很多人對(duì)springmvc執(zhí)行流程簡介都不是特別的了解,因此呢,今天就來為大家分享下關(guān)于springmvc執(zhí)行流程簡介以及cookie和session...
各位老鐵們好,相信很多人對(duì)springmvc執(zhí)行流程簡介都不是特別的了解,因此呢,今天就來為大家分享下關(guān)于springmvc執(zhí)行流程簡介以及cookie和session區(qū)別的問題知識(shí),還望可以幫助大家,解決大家的一些困惑,下面一起來看看吧!
mvc為什么先進(jìn)入
設(shè)置在web-inf里面就是為了防止用戶惡意訪問,比如跳過登錄界面直接進(jìn)入。SpringMVC的運(yùn)行流程是:通過dispatcherservlet(總控制器),根據(jù)用戶訪問地址分別映射到對(duì)應(yīng)的contorller(控制器),然后進(jìn)行與數(shù)據(jù)庫的交互,最后將數(shù)據(jù)展示在jsp又瀏覽器解析為html返回給用戶。
SpringMVC是怎樣處理請(qǐng)求的
SpringMVC是一款基于Java開發(fā)的輕量級(jí)WebMVC框架,是當(dāng)下主流的MVC框架之一,它較Struts更簡單、更安全。既然如此,那在JavaWeb開發(fā)崗位面試中定會(huì)經(jīng)常被問及SpringMVC的請(qǐng)求處理流程,不少開發(fā)者對(duì)此依舊是模糊的。
SpringMVC請(qǐng)求處理流程還是以圖片流程來講解,其流程主要有:
1、用戶發(fā)起Web請(qǐng)求后到達(dá)Web容器(如:Tomcat/Jetty),服務(wù)器再將請(qǐng)求對(duì)象(HttpServletRequest)交給前置控制器(DispatcherServlet)。這里的前置控制器就是SpringMVC的核心入口,攔截匹配的請(qǐng)求。
2、前置控制器收到請(qǐng)求后會(huì)在doService()方法中設(shè)置一些屬性,然后再將請(qǐng)求交給請(qǐng)求處理適配器(HandlerAdapter)。
3、請(qǐng)求處理適配器再去找到對(duì)應(yīng)的請(qǐng)求處理器(Handler)去進(jìn)一步處理請(qǐng)求(其實(shí)就是執(zhí)行此請(qǐng)求要做的業(yè)務(wù)方法)。
4、請(qǐng)求處理器處理好請(qǐng)求后,返回一個(gè)ModelAndView對(duì)象并生成對(duì)應(yīng)的頁面再次交給前置控制器,由前置控制器將響應(yīng)數(shù)據(jù)返回客戶端。
以上就是SpringMVC請(qǐng)求處理的核心流程,看起來很簡單,但內(nèi)部做的事情遠(yuǎn)不止這些。
以上就是我的觀點(diǎn),對(duì)于這個(gè)問題大家是怎么看待的呢?歡迎在下方評(píng)論區(qū)交流~我是科技領(lǐng)域創(chuàng)作者,十年互聯(lián)網(wǎng)從業(yè)經(jīng)驗(yàn),歡迎關(guān)注我了解更多科技知識(shí)!SpringMVC的規(guī)范是誰去落地執(zhí)行
SpringMVC的規(guī)范是誰去落地執(zhí)行?1、法院的立案機(jī)構(gòu)對(duì)符合條件的執(zhí)行案件,應(yīng)在七日內(nèi)審查立案,并移送執(zhí)行機(jī)構(gòu);對(duì)不符合條件的執(zhí)行案件,應(yīng)當(dāng)在七日內(nèi)裁定不予受理。2、執(zhí)行人員在接收案件后,應(yīng)當(dāng)在三日內(nèi)向被執(zhí)行人發(fā)出《執(zhí)行通知書》、《財(cái)產(chǎn)申報(bào)令》。責(zé)令被執(zhí)行人在指定期限內(nèi)履行生效法律文書確定的義務(wù),并承擔(dān)遲延履行期間的債務(wù)利息或遲延履行金;未在指定期限內(nèi)履行生效法律文書確定的義務(wù),應(yīng)當(dāng)報(bào)告當(dāng)前以及收到執(zhí)行通知之日前一年的財(cái)產(chǎn)情況。3、執(zhí)行承辦人員根據(jù)申請(qǐng)執(zhí)行人舉證提供的被執(zhí)行人財(cái)產(chǎn)狀況、線索及被執(zhí)行人申報(bào)的財(cái)產(chǎn)情況,及時(shí)予以調(diào)查核實(shí)。4、在執(zhí)行過程中,申請(qǐng)執(zhí)行人與被執(zhí)行人自愿達(dá)成執(zhí)行和解的,應(yīng)予以準(zhǔn)許,并將和解協(xié)議副本附卷,無書面和解協(xié)議的,應(yīng)將執(zhí)行和解協(xié)議的內(nèi)容記入筆錄,由雙方當(dāng)事人簽名或蓋章后附卷。5、執(zhí)行過程中有被執(zhí)行人拒不履行生效法律文書所確定的義務(wù),報(bào)經(jīng)主管院長同意后可予以拘留或罰款。情節(jié)嚴(yán)重的,依法移交公安機(jī)關(guān)追究刑事責(zé)任。
springmvc原理及流程
第一步:用戶發(fā)起請(qǐng)求到前端控制器(DispatcherServlet)
第二步:前端控制器請(qǐng)求處理器映射器(HandlerMappering)去查找處理器(Handle):通過xml配置或者注解進(jìn)行查找
第三步:找到以后處理器映射器(HandlerMappering)像前端控制器返回執(zhí)行鏈(HandlerExecutionChain)
第四步:前端控制器(DispatcherServlet)調(diào)用處理器適配器(HandlerAdapter)去執(zhí)行處理器(Handler)
第五步:處理器適配器去執(zhí)行Handler
第六步:Handler執(zhí)行完給處理器適配器返回ModelAndView
第七步:處理器適配器向前端控制器返回ModelAndView
第八步:前端控制器請(qǐng)求視圖解析器(ViewResolver)去進(jìn)行視圖解析
第九步:視圖解析器像前端控制器返回View
第十步:前端控制器對(duì)視圖進(jìn)行渲染
第十一步:前端控制器向用戶響應(yīng)結(jié)果
MVC工作流程
SpringMVC工作流程描述:
1.用戶向服務(wù)器發(fā)送請(qǐng)求,請(qǐng)求被Spring前端控制ServeltDispatcherServlet捕獲;
2.DispatcherServlet對(duì)請(qǐng)求URL進(jìn)行解析,得到請(qǐng)求資源標(biāo)識(shí)符(URI)。然后根據(jù)該URI,調(diào)用HandlerMapping獲得該Handler配置的所有相關(guān)的對(duì)象(包括Handler對(duì)象以及Handler對(duì)象對(duì)應(yīng)的攔截器),最后以HandlerExecutionChain對(duì)象的形式返回;
3.DispatcherServlet根據(jù)獲得的Handler,選擇一個(gè)合適的HandlerAdapter;
4.提取Request中的模型數(shù)據(jù),填充Handler入?yún)?,開始執(zhí)行Handler(Controller)。在填充Handler的入?yún)⑦^程中,根據(jù)你的配置,Spring將幫你做一些額外的工作:HttpMessageConveter:將請(qǐng)求消息(如Json、xml等數(shù)據(jù))轉(zhuǎn)換成一個(gè)對(duì)象,將對(duì)象轉(zhuǎn)換為指定的響應(yīng)信息。數(shù)據(jù)轉(zhuǎn)換:對(duì)請(qǐng)求消息進(jìn)行數(shù)據(jù)轉(zhuǎn)換。如String轉(zhuǎn)換成Integer、Double等。數(shù)據(jù)根式化:對(duì)請(qǐng)求消息進(jìn)行數(shù)據(jù)格式化。如將字符串轉(zhuǎn)換成格式化數(shù)字或格式化日期等。數(shù)據(jù)驗(yàn)證:驗(yàn)證數(shù)據(jù)的有效性(長度、格式等),驗(yàn)證結(jié)果存儲(chǔ)到BindingResult或Error中。
5.Handler執(zhí)行完成后,向DispatcherServlet返回一個(gè)ModelAndView對(duì)象;
6.根據(jù)返回的ModelAndView,選擇一個(gè)適合的ViewResolver(必須是已經(jīng)注冊(cè)到Spring容器中的ViewResolver)返回給DispatcherServlet;
7.ViewResolver結(jié)合Model和View,來渲染視圖;
8.將渲染結(jié)果返回給客戶端。
tomcat啟動(dòng)springmvc裝配流程
spring配置文件中,為某個(gè)對(duì)象定義加上init-method="XXX"(作為bean節(jié)點(diǎn)的屬性),其中XXX就是需要執(zhí)行的方法名,該方法沒有參數(shù)。如果需要參數(shù)的話,就要用變通的方式,定義一個(gè)類,需要的參數(shù)作為屬性傳遞給該類,然后定義一個(gè)沒有參數(shù)的方法,使用那些屬性。最后在spring配置中按上述的方式定義init-method
好了,文章到此結(jié)束,希望可以幫助到大家。
本文鏈接:http://xinin56.com/kaifa/1399.html