您好,登錄后才能下訂單哦!
1.三層架構(gòu):表現(xiàn)層(SpringMvc),業(yè)務(wù)層(Spring),持久層(Mybatis)
所以簡(jiǎn)單來說SpringMvc所干的事就是關(guān)于:
請(qǐng)求參數(shù)
響應(yīng)結(jié)果
2.SpringMvc是基于MVC設(shè)計(jì)模型
M:model模型 如: javaBean
V:view視圖如: jsp
C:controller控制器 如: Servlet
3.SpringMVC和struts2的異同:(面試可能會(huì)被問道)
共同點(diǎn):
他們都是表現(xiàn)層的MVC模型框架來寫的
他們得分底層都離不開ServletAPI
他們處理請(qǐng)求的機(jī)制都是一個(gè)核心控制器(SpringMvc是Servlet實(shí)現(xiàn)的Struts2是Filter實(shí)現(xiàn)的)
異同點(diǎn):
SpringMVC的入口是Servlet,而Struts2是Filter(過濾器);
SpringMVC是基于方法實(shí)設(shè)計(jì)的,而struts2是基于類來設(shè)計(jì)的,Struts2每次執(zhí)行都會(huì)去創(chuàng)建一個(gè)動(dòng)作類,所以SpringMVC效率會(huì)比Struts2快一些。
SpringMVC使用更加簡(jiǎn)潔,同時(shí)還支持JSR303,處理ajax更加方便
Struts2的OGNL表達(dá)式是頁面的開發(fā)效率相比SpringMVC更高一些,但執(zhí)行效率并沒有比JSTL提升,尤其是Struts2的表單標(biāo)簽,遠(yuǎn)沒有html執(zhí)行效率高
1.選擇Maven工程的webapp模板,這里就不說啦,嘻嘻,提醒一點(diǎn):
加上archetypeCatalog :internal會(huì)解決項(xiàng)目加載較慢的問題
2.補(bǔ)全目錄:
3.導(dǎo)入依賴:
UTF-8
1.8
1.8
5.1.3.RELEASE
org.springframework
spring-context
${spring.version}
org.springframework
spring-web
${spring.version}
org.springframework
spring-webmvc
${spring.version}
org.apache.tomcat
servlet-api
6.0.29
org.apache.tomcat
jsp-api
6.0.29
4.在web.xml配置前端控制器
Archetype Created Web Application
dispatcherServlet
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:springmvc.xml
1
dispatcherServlet
/
5.創(chuàng)建一個(gè)springmvc.xml的配置文件放在resources下
6.配置tomcat,把項(xiàng)目加載進(jìn)來
鄭州婦科醫(yī)院 http://www.120zzkd.com/
我編寫一個(gè)index.jsp頁面,當(dāng)我點(diǎn)擊標(biāo)簽的時(shí)候,我就跳轉(zhuǎn)到某個(gè)Controller的某個(gè)方法里面去執(zhí)行功能,執(zhí)行完就跳轉(zhuǎn)到success.jsp頁面
1.首先我寫了這個(gè)Controller類中的一個(gè)方法
2.我在index.jsp中寫一個(gè)標(biāo)簽
入門程序
當(dāng)我點(diǎn)擊的時(shí)候跳轉(zhuǎn)到sayhello()這個(gè)方法里面
2.1
首先我要把HelloController這個(gè)類變成一個(gè)對(duì)象啊,那我借助于spring的配置文件來進(jìn)行,在類上加一個(gè)@Controller,此時(shí)借助于我們剛才的springmvc.xml來掃描這個(gè)包,進(jìn)而創(chuàng)建Spring容器,創(chuàng)建HelloController對(duì)象。
2.2
命名空間:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc.xsd">
開啟掃描
2.3
此時(shí)你是否注意到sayhello()方法上的注解@RequestMapping("/hello")呢?
它又是什么作用呢?
它用于建立請(qǐng)求URL和處理請(qǐng)求方法之間的聯(lián)系:
有了它入門程序前端控制器就可以通過處理器映射器找到HelloController下的sayhello()方法了。
2.4
為什么你的返回值是“success”呢,我之前說過等執(zhí)行完就可以跳轉(zhuǎn)到success.jsp,可是怎么跳轉(zhuǎn)呢?這個(gè)SpringMvc的視圖解析器就已經(jīng)幫我們解決了
在springmvc.xml中配置視圖解析器:
路徑名有了,后綴名也有了,我只需要提供一個(gè)jsp的名稱就好了,而sayhello()方法的返回值默認(rèn)為路徑的名稱,這樣我就可以執(zhí)行完跳轉(zhuǎn)到success.jsp頁面了。
2.5
可是在我的代碼中可以看到HelloController這個(gè)類上也有@RequestMapping(path = “/user”),難道類上也可以加這個(gè)注解???
YES!在類上加注解就相當(dāng)于一級(jí)路徑,所以jsp中的訪問路徑:
入門程序
2.6
SpringMvc框架就是各個(gè)組件構(gòu)成的,這樣更加靈活。
SpringMvc的各個(gè)組件中,處理器映射器,處理器適配器,視圖解析器稱為SpringMvc的三大組件,上一張老師的圖吧
但是從這張圖中我們可以看出來,還有其他的組件在發(fā)揮作用了呀,
當(dāng)才視圖適配器就進(jìn)行配置,讓起生效,為什么不配置處理映射器和處理器適配器呀?
上代碼,hhhhhhhhhhhhhhh
是開啟SpringMvc的注解配置,它默認(rèn)為映射器,適配器進(jìn)行了配置,也就是說這行代碼讓映射器,適配器也生效了。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。