javascript
SpringMVC的简单知识
SpringMVC簡單入門:
1,SpringMVC是什么?
優(yōu)秀的MVC框架,支持注解配置,幫我們?nèi)绾蝹鲾?shù)據(jù)到View層。幫我們?nèi)绾稳ス芾鞰odel(如User類的set和get的管理)。(JSP等);就是頁面請(qǐng)求的處理,Controller控制層。(其實(shí)相當(dāng)于我們servlet)。
2,SpringMVC的主要內(nèi)容:
? A,DispatcherServlet,
? B,父子上下文,
? C,攔截器,
? D,全局的異常處理,
? E,轉(zhuǎn)發(fā)與重定向 (帶參數(shù)重定向),
? F,處理ajax請(qǐng)求.
3,SpringMVC的環(huán)境配置:
? A,在web.xml文件里配置:前置控制器(DispatcherServlet)---監(jiān)聽上下文(listener)
? B,在springMVC.xml文件里配置:注解支持----視圖---攔截器【Spring MVC并沒有總的攔截器,不能對(duì)所有的請(qǐng)求進(jìn)行前后攔截。Spring MVC的攔截器,是屬于HandlerMapping級(jí)別的,可以有多個(gè)HandlerMapping ,每個(gè)HandlerMapping可以有自己的攔截器。】
4,SpringMVC與struts2的區(qū)別:
?a,實(shí)現(xiàn)機(jī)制
一,struts2框架是類級(jí)別的攔截,每次來了請(qǐng)求就創(chuàng)建一個(gè)controller中對(duì)應(yīng)的Action,然后調(diào)用setter getter方法把request中的數(shù)據(jù)注入 。struts2實(shí)際上是通過setter getter方法與request打交道的。struts2中,一個(gè)Action對(duì)象對(duì)應(yīng)一個(gè)request上下文。
? ? ? ? ? 二,spring3 mvc不同,spring3mvc是方法級(jí)別的攔截,攔截到方法后根據(jù)參數(shù)上的注解,把request數(shù)據(jù)注入進(jìn)去。在spring3mvc中,一個(gè)方法對(duì)應(yīng)一個(gè)request上下文,而方法同時(shí)又跟一個(gè)url對(duì)應(yīng)。所以說從架構(gòu)本身上 spring3 mvc就容易實(shí)現(xiàn)restful url。而struts2的架構(gòu)實(shí)現(xiàn)起來要費(fèi)勁,因?yàn)閟truts2 action的一個(gè)方法可以對(duì)應(yīng)一個(gè)url,而其類屬性卻被所有方法共享,這也就無法用注解或其他方式標(biāo)識(shí)其所屬方法。
? ? 三,spring mvc的入口是servlet,而struts2是filter.
? b, Request數(shù)據(jù)共享
spring3mvc的方法之間基本上獨(dú)立的,獨(dú)享request response數(shù)據(jù)。請(qǐng)求數(shù)據(jù)通過參數(shù)獲取,處理結(jié)果通過ModelMap交回給框架,方法之間不共享變量。而struts2搞的就比較亂,雖然方法之間也是獨(dú)立的,但其所有Action變量是共享的。
? c,傳參數(shù)
struts是在接受參數(shù)的時(shí)候,可以用屬性來接受參數(shù),這就說明參數(shù)是讓多個(gè)方法共享的。
? d,設(shè)計(jì)思想
struts更加符合oop的編程思想, spring就比較謹(jǐn)慎,在servlet上擴(kuò)展。
? e,intercepter的實(shí)現(xiàn)機(jī)制
struts有以自己的interceptor機(jī)制,spring mvc用的是獨(dú)立的AOP方式。這樣導(dǎo)致struts的配置文件量還是比spring mvc大,論使用上來講,spring mvc使用更加簡潔,開發(fā)效率Spring MVC確實(shí)比struts2高。
? f,spring3 mvc的驗(yàn)證也是一個(gè)亮點(diǎn),支持JSR303
ajax的請(qǐng)求更是方便,只需一個(gè)注解@ResponseBody ,然后直接返回響應(yīng)文本即可。
轉(zhuǎn)載于:https://blog.51cto.com/java1234/1637948
總結(jié)
以上是生活随笔為你收集整理的SpringMVC的简单知识的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WSUS 转发邮件中继到Office36
- 下一篇: rocksdb和leveldb的bloo