最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringMVC配置與使用詳細(xì)介紹

 更新時(shí)間:2022年07月28日 10:15:14   作者:·~簡(jiǎn)單就好  
Spring MVC是一個(gè)基于Java的實(shí)現(xiàn)了MVC設(shè)計(jì)模式的請(qǐng)求驅(qū)動(dòng)類(lèi)型的輕量級(jí)Web框架,通過(guò)把Model,View,Controller分離,將web層進(jìn)行職責(zé)解耦,把復(fù)雜的web應(yīng)用分成邏輯清晰的幾部分,簡(jiǎn)化開(kāi)發(fā),減少出錯(cuò),方便組內(nèi)配合

一、SpringMVC的使用

1、MVC模式

Spring mvc是基于Spring的一個(gè)模塊,專(zhuān)門(mén)做web開(kāi)發(fā),可以理解為是Servlet的升級(jí)

在Spring MVC框架當(dāng)中,Controller替代Servlet擔(dān)負(fù)控制器的職能,

**M:**指model:模型層,指工程當(dāng)中的Java Bean,作用是處理數(shù)據(jù)

Java Bean分兩類(lèi):

一類(lèi)是實(shí)體類(lèi)Bean:專(zhuān)門(mén)存儲(chǔ)業(yè)務(wù)數(shù)據(jù)的

一類(lèi)為業(yè)務(wù)處理Bean:指Servlet或Dao對(duì)象,專(zhuān)門(mén)處理業(yè)務(wù)邏輯和數(shù)據(jù)

V:View,視圖層指項(xiàng)目當(dāng)中的html或jsp等頁(yè)面,作用是與用戶進(jìn)程交互,展示數(shù)據(jù)

C:Contoller,控制層,指工程當(dāng)中的servlet,作用是接受請(qǐng)求和響應(yīng)數(shù)據(jù)

? MVC思想不是那個(gè)語(yǔ)言所特有的設(shè)計(jì)模式,也不是web應(yīng)用所特有的思想,而是一種規(guī)范。MVC思想將一個(gè)應(yīng)用分成三個(gè)基本部分:Model(模型)、View(視圖)和Controller(控制器),這三個(gè)部分以最少的耦合協(xié)同工作,從而提高了應(yīng)用的可擴(kuò)展性和可維護(hù)性。他們?nèi)叩年P(guān)系如下圖所示

2、具體的坐標(biāo)如下

<!--版本鎖定-->
<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,通過(guò)強(qiáng)大的前端控制器DispatcheServlet,對(duì)請(qǐng)求和響應(yīng)進(jìn)行統(tǒng)一處理。

Spring MVC的本質(zhì)就是一個(gè)servlet,是對(duì)原生的servlet進(jìn)行了封裝。在以前我們?yōu)g覽器的每一次請(qǐng)求都需要我們寫(xiě)一個(gè)對(duì)應(yīng)的servlet,現(xiàn)在我們只需要將瀏覽器的請(qǐng)求和響應(yīng)交給DispatcheServlet進(jìn)行統(tǒng)一的處理。

在web.xml配置文件中核心控制器DispatcherServlet

<!--在web.xml中配置Spring提供的過(guò)濾器類(lèi) -->
<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的頁(yè)面請(qǐng)求-->
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.html</url-pattern>
</servlet-mapping>
<!--配置前端控制器,對(duì)瀏覽器發(fā)送的請(qǐng)求進(jìn)行統(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:類(lèi)路徑,值得是Java和resources文件夾-->
        <!--springmvc.xml:指的是配置文件的名稱:需要配置springmvc.xml,在下面-->
        <param-value>classpath:springmvc.xml</param-value>
    </init-param>
    <!--配置啟動(dòng)加載-->
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>dispatcherServlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
<!--開(kāi)啟項(xiàng)目時(shí)打開(kāi)的頁(yè)面-->
<welcome-file-list>
    <welcome-file>/index.html</welcome-file>
</welcome-file-list>

4、編寫(xiě)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)建容器時(shí)要掃描的包-->
    <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開(kāi)啟注解mvc的支持  默認(rèn)就是開(kāi)啟的 ,要想讓其他組件(不包含映射器、適配器、處理器)生效就必須需要配置了-->
    <mvc:annotation-driven></mvc:annotation-driven>
</beans>

二、SpringMVC原理

1、SpringMVC中心控制器

Spring的web框架?chē)@DispatcherServlet 【servlet調(diào)度】設(shè)計(jì)

DispatcherServlet的作用是將請(qǐng)求發(fā)送到不同的處理器

2、入門(mén)案例的執(zhí)行流程

  • 當(dāng)啟動(dòng)Tomcat服務(wù)器的時(shí)候,因?yàn)榕渲昧薼oad-on-startup標(biāo)簽,所以會(huì)創(chuàng)建DispatcherServlet對(duì)象,就會(huì)加載springmvc.xml配置文件
  • 開(kāi)啟了注解掃描,那么HelloController對(duì)象就會(huì)被創(chuàng)建
  • 從index.jsp發(fā)送請(qǐng)求,請(qǐng)求會(huì)先到達(dá)DispatcherServlet核心控制器,根據(jù)配置@RequestMapping注解找到

執(zhí)行的具體方法

  • 根據(jù)執(zhí)行方法的返回值,再根據(jù)配置的視圖解析器,去指定的目錄下查找指定名稱的JSP文件
  • Tomcat服務(wù)器渲染頁(yè)面,做出響應(yīng)

? SpringMVC官方提供圖形

到此這篇關(guān)于SpringMVC配置與使用詳細(xì)介紹的文章就介紹到這了,更多相關(guān)SpringMVC配置與使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 指定jdk啟動(dòng)jar包的方法總結(jié)

    指定jdk啟動(dòng)jar包的方法總結(jié)

    這篇文章主要給大家總結(jié)介紹了關(guān)于指定jdk啟動(dòng)jar包的方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2023-07-07
  • 基于TCP通信丟包原因總結(jié)(推薦)

    基于TCP通信丟包原因總結(jié)(推薦)

    下面小編就為大家?guī)?lái)一篇基于TCP通信丟包原因總結(jié)(推薦)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • SpringBoot整合Groovy腳本實(shí)現(xiàn)動(dòng)態(tài)編程詳解

    SpringBoot整合Groovy腳本實(shí)現(xiàn)動(dòng)態(tài)編程詳解

    這篇文章主要為大家介紹了SpringBoot整合Groovy腳本實(shí)現(xiàn)動(dòng)態(tài)編程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • Java使用FFmpeg處理視頻文件的方法教程

    Java使用FFmpeg處理視頻文件的方法教程

    這篇文章主要給大家介紹了關(guān)于Java使用FFmpeg處理視頻文件的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • JVM執(zhí)行引擎的項(xiàng)目實(shí)踐

    JVM執(zhí)行引擎的項(xiàng)目實(shí)踐

    執(zhí)行引擎是Java虛擬機(jī)核心的組成部分之一,本文主要介紹了JVM執(zhí)行引擎的項(xiàng)目實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-04-04
  • Spring注解@Resource和@Autowired區(qū)別對(duì)比詳解

    Spring注解@Resource和@Autowired區(qū)別對(duì)比詳解

    這篇文章主要介紹了Spring注解@Resource和@Autowired區(qū)別對(duì)比詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09
  • Java?數(shù)據(jù)結(jié)構(gòu)深入理解ArrayList與順序表

    Java?數(shù)據(jù)結(jié)構(gòu)深入理解ArrayList與順序表

    ArrayList?類(lèi)是一個(gè)可以動(dòng)態(tài)修改的數(shù)組,與普通數(shù)組的區(qū)別就是它是沒(méi)有固定大小的限制,我們可以添加或刪除元素。ArrayList?繼承了?AbstractList?,并實(shí)現(xiàn)了?List?接口,順序表是將元素順序地存放在一塊連續(xù)的存儲(chǔ)區(qū)里,元素間的順序關(guān)系由它們的存儲(chǔ)順序自然表示
    2022-04-04
  • 使用Java調(diào)用Yolo模型的基本步驟

    使用Java調(diào)用Yolo模型的基本步驟

    Yolo(You Only Look Once)是一種基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法,它可以在一張圖像中同時(shí)檢測(cè)出多個(gè)目標(biāo),并給出它們的位置和類(lèi)別,這篇文章主要介紹了使用Java調(diào)用Yolo模型的基本步驟,需要的朋友可以參考下
    2024-03-03
  • mybatis攔截器無(wú)法注入spring bean的問(wèn)題解決

    mybatis攔截器無(wú)法注入spring bean的問(wèn)題解決

    本文主要介紹了mybatis攔截器無(wú)法注入spring bean的問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-02-02
  • Java報(bào)錯(cuò):FileNotFoundException的解決方案

    Java報(bào)錯(cuò):FileNotFoundException的解決方案

    在Java編程中,FileNotFoundException 是一種常見(jiàn)的受檢異常,通常發(fā)生在試圖打開(kāi)一個(gè)不存在的文件或文件路徑錯(cuò)誤時(shí),本文將詳細(xì)探討FileNotFoundException的成因、解決方案以及預(yù)防措施,幫助開(kāi)發(fā)者理解和避免此類(lèi)問(wèn)題,需要的朋友可以參考下
    2024-06-06

最新評(píng)論

新丰县| 定州市| 孟津县| 油尖旺区| 洛南县| 南京市| 漯河市| 清水河县| 广宗县| 闵行区| 清水河县| 平原县| 唐山市| 博爱县| 古田县| 平山县| 普宁市| 永安市| 永靖县| 徐水县| 河曲县| 绥阳县| 锦州市| 庆元县| 阳新县| 樟树市| 诸暨市| 全椒县| 平安县| 天津市| 全南县| 临邑县| 台中县| 斗六市| 方山县| 阳信县| 年辖:市辖区| 长宁县| 扶风县| 南乐县| 赤城县|