成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

如何理解SpringMVC

瀏覽:2日期:2023-07-06 17:44:23
目錄一、SpringMVC簡介二、SpringMVC核心組件2.1、DispatcherServlet2.2、HandlerMapping2.3、HandlerInterceptor2.4、HandlerExecutionChain2.5、HandlerAdapter2.6、Handler2.7、ModelAndView2.8、ViewResolver2.9、View三、配置Maven環(huán)境變量3.1、Maven介紹3.2、Maven下載安裝3.2.1、Maven下載3.2.2、配置環(huán)境變量3.2.3、配置Maven配置文件(本地倉庫路徑、鏡像)3.2.4、用Maven創(chuàng)建項目一、SpringMVC簡介

MVC是我們開發(fā)WEB應用程序的通用架構方式

如何理解SpringMVC

MVC的核心思想是業(yè)務數據抽取和業(yè)務數據呈現相分離。

MVC:M(Model)+V(View)+C(Controller)

M(模型層):業(yè)務數據的信息表示,通常是業(yè)務實體

V(視圖層):為用戶呈現數據的頁面

C(控制層):調用業(yè)務邏輯產生合適的數據(Model),同時傳遞數據(Model)給視圖層(View)呈現給用戶

MVC:是一種架構模式,將業(yè)務邏輯和頁面展示分離,使程序分層、分工合作,既相互獨立,又協同合作。

二、SpringMVC核心組件2.1、DispatcherServlet

前端控制器,核心

作用:接收請求,響應結果,相當于轉發(fā)器,中央處理器,降低了組件之間的耦合性。

用戶發(fā)送請求交給DispatcherServlet,DispatcherServlet是整個流程控制的中心,由它調用其他組件處理用戶請求,分發(fā)到具體的對應Controller,從而獲取到需要的業(yè)務數據Model,Model再通過DispatcherServlet傳遞給View完成頁面呈現;DispatcherServlet的存在降低了組件的之間的耦合性。

2.2、HandlerMapping

處理器映射器

作用:根據請求的URL,找到對應的Handler,幫助DispatcherServlet找到對應的Controller

HandlerMapping負責根據用戶請求找到Handler即處理器,SpringMVC提供了多種不同的映射器實現不同的映射方式,例如:配置文件方式,實現接口方式,注解方式等。

2.3、HandlerInterceptor

Handler執(zhí)行前后攔截器

HandlerInterceptor是個接口,里面包含三個方法:preHandle、postHandle、afterCompletion

分別在Handler執(zhí)行前、執(zhí)行中、執(zhí)行完成后執(zhí)行的三個方法

2.4、HandlerExecutionChain

HandlerMapping返回給DispatcherServlet的執(zhí)行鏈

HandlerMapping返回給DispatcherServlet的不光有Handler,還有HandlerInterceptor

preHandle——>ControllerMethod——>postHandle——>afterCompletion

如何理解SpringMVC

這個鏈如何實現的呢?使用了Java的反射機制reflection

2.5、HandlerAdapter

處理器適配器

作用:將各種Controller適配成DispatcherServlet可以使用的Handler,通過特定規(guī)則(HandlerAdapter要求的規(guī)則)去執(zhí)行Handler

通過HandlerAdapter對處理器進行執(zhí)行,這是適配器模式的應用,通過擴展適配器可以對更多類型的處理器進行執(zhí)行。

2.6、Handler

處理器(需要工程師開發(fā))

注意:編寫Handler時需要HandlerAdapter的要求去做,這樣HandlerAdapter才可以正確執(zhí)行Handler

Handler是繼DispatcherServlet前端控制器的后臺控制器,在DispatcherServlet控制下對用戶請求進行處理,Handler涉及業(yè)務需求,所以需要工程師針對用戶需求進行開發(fā),最終返回業(yè)務數據

2.7、ModelAndView

SpringMVC中對Model的一種表示形式

SpringMVC中有Model、Map,但是SpringMVC都會將其轉化為ModelAndView,Model、Map都是ModelAndView的具體表現

如何理解SpringMVC

2.8、ViewResolver

視圖解析器

作用:進行視圖解析,根據邏輯視圖名解析成真正的視圖View

ViewResolver負責將處理結果生成View視圖,ViewResolver首先根據邏輯視圖名解析成具體的頁面地址,然后對View進行渲染,將處理結果通過頁面展示給用戶;SpringMVC提供了很多類型View視圖,包括:jstlView、freemarkerView、pdfView、jsp、html等。

2.9、View

視圖(需要工程師開發(fā)jsp、html)

View是一個接口,實現類支持不同的類型(jsp、html、freemarker、pdf等)

如何理解SpringMVC

三、配置Maven環(huán)境變量3.1、Maven介紹

pom:pom.xml配置文件,通過配置完成依賴關系

DependencyManagement:通過<dependencies><dependency></dependency></dependencies>節(jié)點配置

3.2、Maven下載安裝3.2.1、Maven下載

http://maven.apache.org/download.cgi

如何理解SpringMVC

3.2.2、配置環(huán)境變量

添加M2_HOME:指向Maven解壓后文件夾所在根目錄

編輯Path:添加%M2_HOME%bin;

如何理解SpringMVC

如何理解SpringMVC

3.2.3、配置Maven配置文件(本地倉庫路徑、鏡像)

將Maven安裝文件夾下conf文件夾中的settings.xml拷貝一份放在電腦home下的.m2文件夾中

如何理解SpringMVC

對本地home下.m2中的settings.xml進行修改:

(1)可以修改本地倉庫的存儲位置(可選),默認存儲在home下.m2文件夾中:

如何理解SpringMVC

(2)可以修改中央倉庫的訪問路徑,修改為英文的這個路徑,可以加快訪問速度,減小中央倉庫壓力:

如何理解SpringMVC

3.2.4、用Maven創(chuàng)建項目

(1)首先用Eclipse集成Maven,推薦使用4.3(Kepler)及以上版本Eclipse,因為自己集成了Maven插件m2e

(2)配置Eclipse使用剛剛下載的Maven,以及剛剛配置的settings.xml配置文件:

    在eclipse中選擇Window-Preferences,彈出以下窗口,然后點擊Installations,在右側點擊Add添加按鈕:

如何理解SpringMVC

找到下載安裝的Maven文件夾根目錄,點擊Finish:

如何理解SpringMVC

勾選剛剛添加的maven,點擊Apply,最后點擊OK,配置完成:

如何理解SpringMVC

(3)創(chuàng)建一個Maven項目:

Eclipse中左側欄右鍵,選擇New-Project

如何理解SpringMVC

選擇Maven Project,點擊Next:

如何理解SpringMVC

再次Next:

如何理解SpringMVC

選擇一個符合類型的,點擊Next:

如何理解SpringMVC

填寫Group Id,Artifacted Id,Version,Package,點擊Finish:

如何理解SpringMVC

(4)修改pom.xml

<!-- 加入變量,替代我們用到的工程版本 --> <properties> <commons-lang-version>2.6</commons-lang-version> <slf4j-version>1.7.6</slf4j-version> <spring-version>4.1.3.RELEASE</spring-version> </properties> <!-- 配置依賴管理:讓maven幫我們管理傳遞依賴 --> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-framework-bom</artifactId> <version>${spring.version}</version> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <!-- 配置這個項目所依賴的包 --> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.1.3.RELEASE</version> </dependency> <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> <version>2.6</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.6</version> <exclusions> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </exclusion> </exclusions> </dependency> </dependencies> <!-- 添加組件:jetty是為了方便測試運行 --> <build> <plugins> <plugin> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>9.2.2.v20140723</version> </plugin> </plugins> </build>

如果當前包本地倉庫,不存在,可以點擊項目,右鍵,選擇Maven-Add Dependency

如何理解SpringMVC

填寫Group Id, Artifacted Id, Version之后,點擊OK,Maven就會自動從Maven倉庫下載對應版本的jar包到本地倉庫中:

如何理解SpringMVC

(5)配置WEB應用,修改web.xml

<?xml version='1.0' encoding='UTF-8'?><beans xmlns='http://www.springframework.org/schema/beans' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:context='http://www.springframework.org/schema/context' xmlns:mvc='http://www.springframework.org/schema/mvc' xsi:schemaLocation='http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd'><!-- 激活@Required @Autowired @Resource等標注 --> <context:annotation-config/><!-- DispatcherServlet上下文,只搜索@Controller標注的類,不搜索其他標注的類 --> <context:component-scan base-package='com.ztl.springmvc.controller'> <context:include-filter type='annotation' expression='org.springframework.stereotype.Controller'/> </context:component-scan> <!-- 讓DispatcherServlet啟用基于Annotation的HandlerMapping --> <mvc:annotation-driven/><!-- 將靜態(tài)文件指定到某個特殊的文件夾中統一處理 --> <mvc:resources location='/resources/' mapping='/resources/**'/><bean class='org.springframework.web.servlet.view.InternalResourceViewResolver'> <property name='viewClass' value='org.springframework.web.servlet.view.JstlView'/> <property name='prefix' value='/WEB-INF/jsp/'/> <property name='suffix' value='.jsp'/> </bean><bean class='org.springframework.web.servlet.handler.SimpleMappingExceptionResolver'> <property name='exceptionMappings'> <props> <prop key='com.ztl.springmvc.UserException'>error</prop> <prop key='java.lang.NullPointException'>exception</prop> </props> </property> </bean></beans>

(6)創(chuàng)建一個Controller,以及對應的頁面,寫個簡單demo

寫一個HelloMvcController類:

package com.ztl.springmvc.controller; import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping; @Controller@RequestMapping('/hello')public class HelloMvcController {@RequestMapping('/sayhello')public String sayHello(){return 'home';}}

通過pom.xml中配置的jetty插件來進行啟動測試:

使用cmd命令行,找到項目地址,然后找到當前這個模塊項目:

如何理解SpringMVC

當看見Started Jetty Server時,則代表啟動完成了,可以在瀏覽器訪問了

如何理解SpringMVC

在瀏覽器地址欄輸入http://localhost:8080/hello/sayhello進行訪問:

如何理解SpringMVC

以上就是如何理解SpringMVC的詳細內容,更多關于SpringMVC的資料請關注好吧啦網其它相關文章!

標簽: Spring
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
成人午夜视频福利| 在线电影一区二区三区| 91片黄在线观看| 国产成人精品免费在线| 激情综合色播激情啊| 激情文学综合丁香| 久久99精品国产.久久久久久| 午夜亚洲国产au精品一区二区| 一区二区三区高清| 一区二区三区免费看视频| 亚洲色图色小说| 一区二区三区在线不卡| 亚洲一区在线观看免费| 亚洲一区二区在线观看视频| 亚洲成人综合视频| 日韩精品一级中文字幕精品视频免费观看 | 欧美日韩综合久久| 久久久久国产成人精品亚洲午夜| 欧美一区二区在线视频| 日韩欧美中文字幕公布| 久久久久亚洲蜜桃| 亚洲欧洲99久久| 一区二区不卡在线播放 | 欧美一区二区在线免费观看| 日韩欧美国产成人一区二区| 久久亚洲综合av| 国产精品三级电影| 一区二区三区四区蜜桃| 亚洲一区在线观看免费 | 精品一区精品二区高清| 国产成人精品免费一区二区| 91浏览器入口在线观看| 国产精品sss| 每日更新成人在线视频| 欧美日韩黄色一区二区| 精品欧美一区二区久久 | 9i看片成人免费高清| 亚洲成人在线| 色av一区二区| 欧美成人艳星乳罩| 亚洲精品欧美综合四区| 蜜桃视频一区二区三区在线观看| 国产成人精品亚洲午夜麻豆| 激情久久一区| 欧美撒尿777hd撒尿| 久久久综合精品| 亚洲综合色在线| 国产精品综合一区二区三区| 欧美午夜视频在线| 色狠狠桃花综合| 国产无人区一区二区三区| 亚洲国产视频直播| av亚洲精华国产精华精华| 国产麻豆综合| 久久先锋影音av鲁色资源网| 亚洲.国产.中文慕字在线| 成人天堂资源www在线| 制服丝袜在线91| 国产清纯在线一区二区www| 午夜国产精品一区| 91色porny蝌蚪| 91久久精品国产91性色tv | 丝袜国产日韩另类美女| 91视频在线观看免费| 欧美自拍丝袜亚洲| 国产精品视频一二三| 精品伊人久久久久7777人| 91久久精品国产91久久性色tv| 欧美影院一区二区| 亚洲男人的天堂在线观看| proumb性欧美在线观看| 色婷婷av一区二区三区大白胸| 久久精品欧美日韩精品| 麻豆91精品视频| 悠悠资源网久久精品| 欧美一级生活片| 日韩精品成人一区二区三区 | 欧美一二区视频| 日产欧产美韩系列久久99| 激情自拍一区| 久久理论电影网| 国产精品一区一区| 久久精品亚洲| 亚洲视频你懂的| 播五月开心婷婷综合| 欧美日韩一本到| 亚洲国产日韩综合久久精品| 欧美午夜精品理论片a级大开眼界| 欧美肥胖老妇做爰| 天天亚洲美女在线视频| 亚洲二区三区四区| 国产精品视频线看| 91影院在线免费观看| 欧美一区二区三区色| 精品亚洲国产成人av制服丝袜| 一区二区三区视频在线播放| 中文字幕一区二区三区在线不卡 | 欧美一a一片一级一片| 亚洲大尺度视频在线观看| 在线免费观看欧美| 国产精品灌醉下药二区| 欧美黄在线观看| 久久亚洲一级片| 成人免费高清在线| 精品久久一区二区| 91在线观看美女| 国产亚洲精品aa| 女同性一区二区三区人了人一| 精品久久人人做人人爰| 99视频精品全部免费在线| 久久久久久久久久久久电影| www.久久久久久久久| 欧美精品一区二区久久久| k8久久久一区二区三区| 国产日产亚洲精品系列| 黑人中文字幕一区二区三区| 亚洲欧美乱综合| 鲁大师成人一区二区三区| 人人爽香蕉精品| 91麻豆精品国产91久久久久久 | 欧美久色视频| 亚洲青青青在线视频| 免费久久99精品国产自在现线| 香蕉久久夜色精品国产使用方法| 亚洲欧美精品在线观看| 日本vs亚洲vs韩国一区三区二区 | 亚洲理论在线| 偷拍日韩校园综合在线| 欧美一a一片一级一片| 国内欧美视频一区二区| 欧美电视剧在线看免费| 欧美日韩亚洲一区| 亚洲一区国产视频| 欧美日韩亚洲综合在线| 91在线观看地址| 一区二区三区久久| 欧美日韩国产影片| 午夜电影亚洲| 亚洲综合男人的天堂| 欧美色偷偷大香| 91蜜桃视频在线| 亚洲午夜一区二区三区| 91精品免费在线观看| 国产一区久久| 麻豆91精品视频| 中文字幕精品一区二区精品绿巨人| 毛片av一区二区三区| 精品av久久707| 国产精品免费区二区三区观看| 九色porny丨国产精品| 国产婷婷一区二区| 色哟哟国产精品| 91在线视频播放| 五月天激情综合网| 久久久久久久久久久久久久久99| 国产精品腿扒开做爽爽爽挤奶网站| 极品少妇一区二区| 亚洲另类在线视频| 欧美大片一区二区| 亚洲一区观看| 91老师片黄在线观看| 日韩国产欧美在线视频| 国产精品拍天天在线| 欧美日韩不卡在线| 国产欧美欧美| 欧美人与禽猛交乱配| 久久精品国产999大香线蕉| 中文字幕在线观看一区二区| 欧美一区二区三区四区久久| 欧美一级网站| 欧美日韩一区综合| 国产.欧美.日韩| 日韩av网站在线观看| 成人欧美一区二区三区| 欧美成va人片在线观看| 欧洲另类一二三四区| 国产精品久久久久久久久久直播| av在线不卡观看免费观看| 韩国精品在线观看| 亚洲第一久久影院| 亚洲欧美一区二区三区国产精品| 日韩精品一区二区在线观看| 在线观看视频一区二区| 亚洲尤物精选| 亚洲国产日韩欧美| 欧美日韩在线高清| 99视频精品免费视频| 国产精品一区二区91| 久久国产综合精品| 亚洲成人av电影在线| 一区二区三区免费看视频| 日韩毛片在线免费观看| 欧美激情一区二区三区| 欧美大片顶级少妇| 欧美一区日韩一区| 91精品在线观看入口| 欧美精品乱码久久久久久| 欧美午夜免费电影| 欧美综合视频在线观看| 在线视频欧美精品|