1.三層架構(gòu):表現(xiàn)層(SpringMvc),業(yè)務(wù)層(Spring),持久層(Mybatis)
所以簡單來說SpringMvc所干的事就是關(guān)于:
請求參數(shù)
響應(yīng)結(jié)果
2.SpringMvc是基于MVC設(shè)計模型
M:model模型 如: javaBean
V:view視圖如: jsp
C:controller控制器 如: Servlet
3.SpringMVC和struts2的異同:(面試可能會被問道)
共同點:
他們都是表現(xiàn)層的MVC模型框架來寫的
他們得分底層都離不開ServletAPI
他們處理請求的機制都是一個核心控制器(SpringMvc是Servlet實現(xiàn)的Struts2是Filter實現(xiàn)的)
異同點:
SpringMVC的入口是Servlet,而Struts2是Filter(過濾器);
SpringMVC是基于方法實設(shè)計的,而struts2是基于類來設(shè)計的,Struts2每次執(zhí)行都會去創(chuàng)建一個動作類,所以SpringMVC效率會比Struts2快一些。
SpringMVC使用更加簡潔,同時還支持JSR303,處理ajax更加方便
Struts2的OGNL表達式是頁面的開發(fā)效率相比SpringMVC更高一些,但執(zhí)行效率并沒有比JSTL提升,尤其是Struts2的表單標(biāo)簽,遠沒有html執(zhí)行效率高
1.選擇Maven工程的webapp模板,這里就不說啦,嘻嘻,提醒一點:
加上archetypeCatalog :internal會解決項目加載較慢的問題
2.補全目錄:
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)建一個springmvc.xml的配置文件放在resources下
6.配置tomcat,把項目加載進來
鄭州婦科醫(yī)院 http://www.120zzkd.com/
我編寫一個index.jsp頁面,當(dāng)我點擊標(biāo)簽的時候,我就跳轉(zhuǎn)到某個Controller的某個方法里面去執(zhí)行功能,執(zhí)行完就跳轉(zhuǎn)到success.jsp頁面
1.首先我寫了這個Controller類中的一個方法
2.我在index.jsp中寫一個標(biāo)簽
入門程序
當(dāng)我點擊的時候跳轉(zhuǎn)到sayhello()這個方法里面
2.1
首先我要把HelloController這個類變成一個對象啊,那我借助于spring的配置文件來進行,在類上加一個@Controller,此時借助于我們剛才的springmvc.xml來掃描這個包,進而創(chuàng)建Spring容器,創(chuàng)建HelloController對象。
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
此時你是否注意到sayhello()方法上的注解@RequestMapping("/hello")呢?
它又是什么作用呢?
它用于建立請求URL和處理請求方法之間的聯(lián)系:
有了它入門程序前端控制器就可以通過處理器映射器找到HelloController下的sayhello()方法了。
2.4
為什么你的返回值是“success”呢,我之前說過等執(zhí)行完就可以跳轉(zhuǎn)到success.jsp,可是怎么跳轉(zhuǎn)呢?這個SpringMvc的視圖解析器就已經(jīng)幫我們解決了
在springmvc.xml中配置視圖解析器:
路徑名有了,后綴名也有了,我只需要提供一個jsp的名稱就好了,而sayhello()方法的返回值默認(rèn)為路徑的名稱,這樣我就可以執(zhí)行完跳轉(zhuǎn)到success.jsp頁面了。
2.5
可是在我的代碼中可以看到HelloController這個類上也有@RequestMapping(path = “/user”),難道類上也可以加這個注解???
YES!在類上加注解就相當(dāng)于一級路徑,所以jsp中的訪問路徑:
入門程序
2.6
SpringMvc框架就是各個組件構(gòu)成的,這樣更加靈活。
SpringMvc的各個組件中,處理器映射器,處理器適配器,視圖解析器稱為SpringMvc的三大組件,上一張老師的圖吧
但是從這張圖中我們可以看出來,還有其他的組件在發(fā)揮作用了呀,
當(dāng)才視圖適配器就進行配置,讓起生效,為什么不配置處理映射器和處理器適配器呀?
上代碼,hhhhhhhhhhhhhhh
是開啟SpringMvc的注解配置,它默認(rèn)為映射器,適配器進行了配置,也就是說這行代碼讓映射器,適配器也生效了。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。