-
使用Maven創(chuàng)建Spring MVC的環(huán)境(將在命令行創(chuàng)建好的Maven項(xiàng)目導(dǎo)入)
問題:項(xiàng)目的build path里Order and Export發(fā)現(xiàn)目錄缺失,可以手動添加缺失的目錄,根據(jù)目錄的缺少情況。
【一】pom配置
第一項(xiàng)配置:jar包版本配置——如果工程依賴比較復(fù)雜、且比較大的情況下,可以添加標(biāo)簽來設(shè)置需要用到的jar包版本,這樣就可以清晰的理解我們所使用的依賴軟件包的版本。
第二項(xiàng)目配置:引用jar包版本配置——依賴管理是Maven中比較核心的配置,因?yàn)镸aven可以管理一些傳遞的依賴,比如SpirngMVC依賴了Spring的包,而Hibernate也用到了Spring的包,當(dāng)這兩個依賴Spring版本不一樣的時候,依賴管理就發(fā)生了作用,依賴管理可以使用指定版本的Spring,這里是4.1.3.RELEASE版本,該項(xiàng)目中所依賴的Spring文件都將以該版本為例。
第三項(xiàng)配置:依賴管理——Maven提供依賴管理,項(xiàng)目所依賴的jar包都存在<dependencies>標(biāo)簽里,可以為我們構(gòu)建任意多個依賴的軟件包,因?yàn)樵?<properties>指明了Spring所有相關(guān)的版本,所以<dependencies><dependency>就不需要指明它的版本了。
第四項(xiàng)配置:插件配置——提供了額外功能,比如jetty,可以用它來測試和部署,但是和項(xiàng)目本身應(yīng)用沒有很大關(guān)聯(lián)。
【二】web.xml配置
將DispatcherServlet配置到Web環(huán)境:通過<servlet>和<servlet-mapping>標(biāo)簽,這里最關(guān)鍵的屬性是<servlet-name>,該標(biāo)簽的name可以自定義,但它關(guān)系到默認(rèn)的配置文件,如果不做任何其它配置(比如init-param),Spring就將在默認(rèn)位置,默認(rèn)的文件名來加載SpringMVC的配置文件(Spring會默認(rèn)加載WEB-IN下的mvc-dispatcher-servlet.xml),如下圖藍(lán)色字體,也可以通過<init-param>改變該參數(shù),所以要在WEB-INF創(chuàng)建configs——>spring,并在spring文件夾下創(chuàng)建DispatcherServlet創(chuàng)建它對應(yīng)的上下文環(huán)境。
【三】SpringMVC配置文件(mvc-dispatcher-servlet.xml)
第一項(xiàng)配置:Spring的applicationContext激活對標(biāo)簽支持的一些生命周期的管理,所以它可以識別用標(biāo)簽配置的Bean的聲明。
第二項(xiàng)配置:DispatcherServlet上下文里只搜索帶有@Controller標(biāo)注的類,SpringMVC讓控制器(Controller)和請求之間發(fā)生聯(lián)系,并且做一些相應(yīng)的操作
第三項(xiàng)配置:DispatherServlet啟用基于annotation的HandlerMapping,通過如下圖完成
第四項(xiàng)配置:配置ViewResolver,通過它通知DispatcherServlet分發(fā)給那個View,只需要配置一個前綴和一個后綴,就可以將這些東西拼接成某個JSP文件,這里存放JSP文件是在WEB-INF/jsps文件夾下,所以要創(chuàng)建該文件夾。
Controller類的編寫:名為HelloMvcController,并且包必須在管理Controller標(biāo)簽路徑里,并且讓Spring知道這是一個Controller所以需要在類上添加@Controller,并且通知SpringMVC映射到哪一個URL路徑,通過@RequestMapping(/hello")攔截根目錄下的hello,并且編寫一個方法返回一個字符串,并在方法上添加注解@RequestMapping("/mvc")如圖。
該Controller會響應(yīng)host:8080/hello/mvc的一個url,這就是SpirngMVC運(yùn)行的方式,請求和Controller之間的映射,它就會返回到home.jsp,所以在jsps中創(chuàng)建home.jsp。
命令行中:進(jìn)入項(xiàng)目的目錄,查看目錄中是否有pom,輸入mvn jetty:run,提供一個運(yùn)行的容器環(huán)境,運(yùn)行后maven就會解析所有的依賴等等,當(dāng)看到Start Jetty Server說明Maven已經(jīng)成功啟動了,這里使用了默認(rèn)的端口號8080,瀏覽器訪問:http://localhost:8080/hello/mvc,結(jié)果就會跳轉(zhuǎn)到相應(yīng)頁面。
拓展:使用Eclipse導(dǎo)入項(xiàng)目時遇到No projects are found to import提示的解決辦法https://blog.csdn.net/ancientear/article/details/86772425。
查看全部 -
Eclipse集成Maven,并使用Maven創(chuàng)建Spring MVC的開發(fā)環(huán)境
【一】下載合適版本的eclipse(推薦4.3版本kepler,他默認(rèn)的集成了Maven的插件m2e)
【二】配置eclipse
Window——>Maven——>Installations——>Add(選擇我們安裝的Maven)
Window——>Maven——>User Settings——>Browse...(我們設(shè)置好的settings文件路徑)
【三】Hello Spring MVC環(huán)境的搭建,運(yùn)行Spring MVC的代碼
命令行輸入:自動創(chuàng)建Maven的目錄結(jié)構(gòu),這個目錄就是典型的Web應(yīng)用目錄,通過mvn調(diào)用Maven的運(yùn)行環(huán)境,后面緊接著的是調(diào)用了某種插件,并且將插件上的某種目標(biāo)應(yīng)用,后面是插件所需要的參數(shù),groupId為坐標(biāo),artifact也是坐標(biāo)的一個參數(shù),artifactId最終的值會成為所創(chuàng)建的目錄結(jié)構(gòu)的根目錄的名稱,archetypeArtifactId指明了我們創(chuàng)建目錄的類型,這里是webapp類型,注意:這里應(yīng)當(dāng)在我們需要創(chuàng)建的位置,來輸入命令。
查看全部 -
Maven的配置文件settings進(jìn)行修改
Maven的配置文件:Maven目錄下的conf——>settings,在HOME目錄下有個.m2的文件夾,如果僅僅是剛安裝Maven,而沒有運(yùn)行Maven的任何命令,那么可能無法看見這個目錄,一可以手動創(chuàng)建這個目錄,二可以運(yùn)行某個Maven命令之后,將settings復(fù)制到.m2文件夾下,并對其修改,將settings賦值到.m2進(jìn)行修改的原因是可能對Maven的版本進(jìn)行升級,這樣就不用每次對該文件進(jìn)行修改。
修改1:<localRepository>路徑</localRepository>它為可選項(xiàng),如果不對它進(jìn)行配置,它的默認(rèn)路徑軟件庫會安裝到${user.home}/.m2/repository下,如果想把它放在其他位置,就修改路徑。
修改2:鏡像<mirrors>Maven的核心倉庫,官方推薦使用英國的一個鏡像,配置這個鏡像,每次訪問Maven,都會到這個庫進(jìn)行下載我們需要的軟件包,降低了中心倉庫的負(fù)載,中心倉庫為了避免造成太大訪問量造成服務(wù)器的運(yùn)行問題,有時會拒絕我們的訪問,所以通過指向英國的鏡像,訪問的成功率會有所提升。
查看全部 -
Maven的安裝
【一】下載并解壓Maven
【二】配置環(huán)境變量(M2_HOME,Path),配置Maven配置文件(本地倉庫路徑,鏡像)
cmd中:輸入mvn -version,成功會輸出提示。
搜索引擎中,搜索Maven,第一條就是Maven的官方,選擇download,選擇bin.zip,
查看全部 -
使用Maven搭建Spring MVC開發(fā)環(huán)境
Maven介紹:是一個構(gòu)建依賴管理工具。
【1】POM(Project Object Model):一個xml文件,配置許多維護(hù)信息,來完成相應(yīng)功能(依賴管理、生命周期、插件的需要)。
【2】Dependency Management:一個項(xiàng)目可能依賴其他項(xiàng)目,在這里就不需要其他項(xiàng)目的jar包,通過配置就可以實(shí)現(xiàn),寫下了項(xiàng)目所依賴的spring-webmvc的依賴,spring-webmvc依賴的其他包會自動導(dǎo)入。
【3】Coordinates:maven的坐標(biāo)由groupId、artifactId、version、packaging構(gòu)成,這四個信息是可以唯一標(biāo)識一個產(chǎn)品。
查看全部 -
Spring MVC的動態(tài)概念:DispatcherServlet基于核心的地位,連接View和Controller,訪問過程——>用戶通過瀏覽器發(fā)送請求通過服務(wù)器被DispatcherServlet攔截到,DispatcherServlet通過HandlerMapping找到適配的Controller,這里是通過annotation來找到指定Controller,并且找到HandlerInterceptor,也就是執(zhí)行Controller的業(yè)務(wù)邏輯之前,執(zhí)行一些方法,這就形成了HandlerExecutionChain執(zhí)行鏈條,并且HandlerMapping會返回一個對象給DispatcherServlet,該對象包括(HandlerAdapter、HandlerInterceptor),并且Controller會生成ModelAndView返回給DispatcherServlet,但是DispatcherServlet不能確定顯示哪個視圖,這里通過ViewResolver的方法返回View對象,數(shù)據(jù)被傳遞給View進(jìn)行呈現(xiàn),這時就可以看到呈現(xiàn)的頁面了。
查看全部 -
SpringMVC的靜態(tài)概念
DispatcherServlet:它就相當(dāng)于SpringMVC的前端控制器(Front Controller),前端用戶的請求通過DispatcherServlet進(jìn)行了分發(fā),到達(dá)相應(yīng)的Controller,來生產(chǎn)需要的業(yè)務(wù)數(shù)據(jù)Model,Model再通過DispatcherServlet傳遞給View完成最終頁面呈現(xiàn)。
HandlerAdapter:適配器模式,將各種不同類型的HandlerAdapter適配成DispatcherServlet可以使用的HandlerAdapter,它是在DispatcherServlet內(nèi)部使用的一個類,DispatcherServlet通過它可以找到Controller,SpringMVC中并沒有一個接口叫做Controller,但是有一個annotation標(biāo)簽,該標(biāo)簽可以識別一個Controller。
HandlerInterceptor:攔截器,他是一個接口,擁有三個方法,如果Controller實(shí)現(xiàn)該接口,就可以調(diào)用Controller之前,調(diào)用之后,以及最終Model發(fā)送到頁面可以做一些事情。
HandlerMapping:Handler是DispatcherServlet調(diào)用Controller中間過渡的一種對象,Mapping是DispatcherServlet與Controller映射關(guān)系的一種類,所以它就是請求到達(dá)DispatcherServlet,哪一個Controller來響應(yīng)該請求,并且他也會對HandlerInterceptor進(jìn)行管理,也就是它工作完后,會返回一個HandlerAdapter給DispatcherServlet。
HandlerExecutionChain:HandlerMapping返回的對象(包含HandlerAdapter、HandlerInterceptor),它們之間構(gòu)成了一條執(zhí)行鏈條,首先執(zhí)行HandlerInterceptor的preHandle方法,然后調(diào)用Controller里的某個業(yè)務(wù)方法,再執(zhí)行postHandle方法,再執(zhí)afterCompletion方法,這里用到了反射機(jī)制(reflect)。
ModelAndView:可以使用SpringMVC中提供的Model類也可以使用java中提供的Map類的表現(xiàn)形式,但是DispatcherServlet最終都會把它轉(zhuǎn)換為ModelAndView,所以在這里可以表現(xiàn)為Model的具體表現(xiàn)。
ViewResolver:視圖解析器,可以通知DispatcherServlet使用哪一個視圖,來進(jìn)行視圖的呈現(xiàn),作用就是根據(jù)配置,找出需要的視圖對象。
View:負(fù)責(zé)呈現(xiàn)頁面,比如Jsp、JSTL等。
查看全部 -
MVC(Model-View-Controller)
MVC定義:程序分層,分工合作,既相互獨(dú)立,又協(xié)同工作。
View:視圖層,為用戶提供UI重點(diǎn)關(guān)注數(shù)據(jù)的呈現(xiàn)。
Model:模型層,業(yè)務(wù)數(shù)據(jù)的信息表示,關(guān)注支撐業(yè)務(wù)的信息構(gòu)成,通常是多個業(yè)務(wù)實(shí)體的組合。
Controller:控制層,調(diào)用業(yè)務(wù)邏輯產(chǎn)生合適的數(shù)據(jù)(Model)傳遞數(shù)據(jù)給視圖層用于呈現(xiàn)。
查看全部 -
MVC本質(zhì):MVC的核心思想是業(yè)務(wù)數(shù)據(jù)抽取同業(yè)務(wù)數(shù)據(jù)呈現(xiàn)相分離。
前端控制器(Front Controller):處理用戶的請求,分發(fā)調(diào)度的功能,一方面將請求分發(fā)給控制器生成業(yè)務(wù)數(shù)據(jù),另一方面將生成的數(shù)據(jù)分發(fā)給相應(yīng)的視圖模板。
前端控制器工作原理: 用戶的請求通過Http協(xié)議,到達(dá)前端控制器,前端控制器了解這個請求應(yīng)該由誰來處理,所以將這個請求交給了控制器(Controller),前端控制器會接受到控制器傳來的數(shù)據(jù)再將這些數(shù)據(jù)分發(fā)給業(yè)務(wù)視圖,業(yè)務(wù)視圖呈現(xiàn)給用戶頁面,又將這個頁面?zhèn)鬟f給前端控制器,最終將該頁面返回到瀏覽器端。
控制器(Controller):了解業(yè)務(wù)邏輯的細(xì)節(jié),調(diào)用了業(yè)務(wù)邏輯生成了業(yè)務(wù)數(shù)據(jù),并將數(shù)據(jù)返回給前端控制器。
查看全部 -
一、MVC簡介
二、Spring MVC基本概念
三、Spring MVC項(xiàng)目搭建(使用maven搭建開發(fā)環(huán)境)
四、使用Spirng MVC進(jìn)行開發(fā)
1、如何使用controller響應(yīng)一個請求。
2、如何實(shí)現(xiàn)數(shù)據(jù)綁定。
3、如何文件上傳等日常開發(fā)中用到的基本操作
五、課程總結(jié)(梳理講解的知識,以及沒有涉及到但在SpringMVC之中,所擁有的功能)
查看全部 -
eclipse配置maven
查看全部 -
maven配置
查看全部 -
maven的安裝 path的配置
查看全部 -
MVC模式
VIEW
Model
Controller
查看全部 -
mvc本質(zhì)是
查看全部
舉報