溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

SpringMvc的簡(jiǎn)單入門

發(fā)布時(shí)間:2020-05-27 11:00:05 來源:網(wǎng)絡(luò) 閱讀:208 作者:ckllf 欄目:編程語言

  SpringMvc的簡(jiǎn)單入門


  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í)行效率高

  SpringMvc的簡(jiǎn)單入門


  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)來

  SpringMvc的簡(jiǎ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)行了配置,也就是說這行代碼讓映射器,適配器也生效了。


向AI問一下細(xì)節(jié)

免責(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)容。

AI