SpringMVC配置與使用詳細介紹
一、SpringMVC的使用
1、MVC模式
Spring mvc是基于Spring的一個模塊,專門做web開發(fā),可以理解為是Servlet的升級
在Spring MVC框架當中,Controller替代Servlet擔負控制器的職能,
**M:**指model:模型層,指工程當中的Java Bean,作用是處理數(shù)據(jù)
Java Bean分兩類:
一類是實體類Bean:專門存儲業(yè)務數(shù)據(jù)的
一類為業(yè)務處理Bean:指Servlet或Dao對象,專門處理業(yè)務邏輯和數(shù)據(jù)
V:View,視圖層指項目當中的html或jsp等頁面,作用是與用戶進程交互,展示數(shù)據(jù)
C:Contoller,控制層,指工程當中的servlet,作用是接受請求和響應數(shù)據(jù)
? MVC思想不是那個語言所特有的設計模式,也不是web應用所特有的思想,而是一種規(guī)范。MVC思想將一個應用分成三個基本部分:Model(模型)、View(視圖)和Controller(控制器),這三個部分以最少的耦合協(xié)同工作,從而提高了應用的可擴展性和可維護性。他們三者的關系如下圖所示
2、具體的坐標如下
<!--版本鎖定--> <properties> <spring.version>5.0.2.RELEASE</spring.version> </properties> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <!--SpringMVC--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>${spring.version}</version> </dependency> <!--servlet API--> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.0</version> <scope>provided</scope> </dependency> <!--日志--> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.2.3</version> </dependency> <dependency> <groupId>org.thymeleaf</groupId> <artifactId>thymeleaf-spring4</artifactId> <version>3.0.9.RELEASE</version> </dependency> </dependencies>
3、配置DispatcheServlet
? Spring MVC是基于原生的servlet,通過強大的前端控制器DispatcheServlet,對請求和響應進行統(tǒng)一處理。
Spring MVC的本質就是一個servlet,是對原生的servlet進行了封裝。在以前我們?yōu)g覽器的每一次請求都需要我們寫一個對應的servlet,現(xiàn)在我們只需要將瀏覽器的請求和響應交給DispatcheServlet進行統(tǒng)一的處理。
在web.xml配置文件中核心控制器DispatcherServlet
<!--在web.xml中配置Spring提供的過濾器類 --> <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <async-supported>true</async-supported> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!--不攔截所有是html的頁面請求--> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>*.html</url-pattern> </servlet-mapping> <!--配置前端控制器,對瀏覽器發(fā)送的請求進行統(tǒng)一處理--> <servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!--加載springmvc.xml配置文件的位置和名稱,配置的是Spring配置--> <init-param> <!--contextConfigLocation:上下文配置路徑,固定值--> <param-name>contextConfigLocation</param-name> <!--classpath:類路徑,值得是Java和resources文件夾--> <!--springmvc.xml:指的是配置文件的名稱:需要配置springmvc.xml,在下面--> <param-value>classpath:springmvc.xml</param-value> </init-param> <!--配置啟動加載--> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> <!--開啟項目時打開的頁面--> <welcome-file-list> <welcome-file>/index.html</welcome-file> </welcome-file-list>
4、編寫springmvc.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.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"> <!--配置spring創(chuàng)建容器時要掃描的包--> <context:component-scan base-package="com"></context:component-scan> <!--處理映射器--> <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/> <!--處理器適配器--> <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/> <!--配置視圖解析器--> <bean id="viewResolver" class="org.thymeleaf.spring4.view.ThymeleafViewResolver"> <property name="order" value="1"/> <property name="characterEncoding" value="UTF-8"/> <property name="templateEngine" ref="templateEngine"/> </bean> <!-- templateEngine --> <bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine"> <property name="templateResolver" ref="templateResolver"/> </bean> <bean id="templateResolver" class="org.thymeleaf.spring4.templateresolver.SpringResourceTemplateResolver"> <property name="prefix" value="/html/" /> <property name="suffix" value=".html" /> <property name="templateMode" value="HTML5"/> </bean> <!-- 配置spring開啟注解mvc的支持 默認就是開啟的 ,要想讓其他組件(不包含映射器、適配器、處理器)生效就必須需要配置了--> <mvc:annotation-driven></mvc:annotation-driven> </beans>
二、SpringMVC原理
1、SpringMVC中心控制器
Spring的web框架圍繞DispatcherServlet 【servlet調度】設計
DispatcherServlet的作用是將請求發(fā)送到不同的處理器
2、入門案例的執(zhí)行流程
- 當啟動Tomcat服務器的時候,因為配置了load-on-startup標簽,所以會創(chuàng)建DispatcherServlet對象,就會加載springmvc.xml配置文件
- 開啟了注解掃描,那么HelloController對象就會被創(chuàng)建
- 從index.jsp發(fā)送請求,請求會先到達DispatcherServlet核心控制器,根據(jù)配置@RequestMapping注解找到
執(zhí)行的具體方法
- 根據(jù)執(zhí)行方法的返回值,再根據(jù)配置的視圖解析器,去指定的目錄下查找指定名稱的JSP文件
- Tomcat服務器渲染頁面,做出響應
? SpringMVC官方提供圖形
到此這篇關于SpringMVC配置與使用詳細介紹的文章就介紹到這了,更多相關SpringMVC配置與使用內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
logback?OutputStreamAppender高效日志輸出源碼解析
這篇文章主要介紹了為大家logback?OutputStreamAppender日志輸出效率提升示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-10-10Spring Boot 配置 IDEA和DevTools 熱部署的方法
這篇文章主要介紹了Spring Boot 配置 IDEA和DevTools 熱部署的方法,需要的朋友可以參考下2018-02-02