Spring MVC教程

Spring MVC是一個(gè)Java框架,用于構(gòu)建Web應(yīng)用程序。它遵循Model-View-Controller設(shè)計(jì)模式。它實(shí)現(xiàn)了核心Spring框架的所有基本功能,例如控制反轉(zhuǎn),依賴注入。

Spring MVC通過(guò) DispatcherServlet 提供了一種優(yōu)雅的解決方案,可以在Spring框架中使用MVC。 >。在這里, DispatcherServlet 是一個(gè)類,用于接收傳入的請(qǐng)求并將其映射到正確的資源,例如控制器,模型和視圖。

Spring Web Model-View-Controller

Spring MVC教程 Model-模型包含應(yīng)用程序的數(shù)據(jù)。數(shù)據(jù)可以是單個(gè)對(duì)象或?qū)ο蟮募稀?/span> Controller-控制器包含應(yīng)用程序的業(yè)務(wù)邏輯。在這里,@ Controller批注用于將類標(biāo)記為控制器。 View-視圖以特定格式表示所提供的信息。通常,JSP + JSTL用于創(chuàng)建視圖頁(yè)面。盡管spring還支持其他視圖技術(shù),例如Apache Velocity,Thymeleaf和FreeMarker。 Front Controller-在Spring Web MVC中,DispatcherServlet類用作前端控制器。它負(fù)責(zé)管理Spring MVC應(yīng)用程序的流程。


了解Spring Web MVC的流程

Spring MVC教程 如圖所示,所有傳入的請(qǐng)求都被充當(dāng)前端控制器的DispatcherServlet攔截。 DispatcherServlet從XML文件獲取處理程序映射的條目,并將請(qǐng)求轉(zhuǎn)發(fā)給控制器。 控制器返回ModelAndView對(duì)象。 DispatcherServlet檢查XML文件中的視圖解析器條目,并調(diào)用指定的視圖組件。


Spring MVC Framework的優(yōu)點(diǎn)

讓我們看看Spring MVC Framework的一些優(yōu)點(diǎn): -

分離角色-Spring MVC分離每個(gè)角色,其中可以由專門(mén)的對(duì)象來(lái)實(shí)現(xiàn)模型對(duì)象,控制器,命令對(duì)象,視圖解析器,DispatcherServlet,驗(yàn)證器等。 輕量-它使用輕巧的servlet容器來(lái)開(kāi)發(fā)和部署您的應(yīng)用程序。 強(qiáng)大的配置-它為框架和應(yīng)用程序類提供了可靠的配置,其中包括跨上下文的輕松引用,例如從Web控制器到業(yè)務(wù)對(duì)象和驗(yàn)證器。 快速開(kāi)發(fā)-Spring MVC促進(jìn)了快速并行的開(kāi)發(fā)。 可重復(fù)使用的業(yè)務(wù)代碼-無(wú)需創(chuàng)建新對(duì)象,它使我們可以使用現(xiàn)有業(yè)務(wù)對(duì)象。 易于測(cè)試-在Spring中,通常我們創(chuàng)建JavaBeans類,使您可以使用setter方法注入測(cè)試數(shù)據(jù)。 靈活的映射-它提供了可輕松重定向頁(yè)面的特定注釋。


Spring Web MVC框架示例

讓我們看一下Spring Web MVC框架的簡(jiǎn)單示例。步驟如下:

在Maven中加載spring jar文件或添加依賴項(xiàng) 創(chuàng)建控制器類 在web.xml文件中提供控制器的條目 在單獨(dú)的XML文件中定義bean 在JSP頁(yè)面中顯示消息 啟動(dòng)服務(wù)器并部署項(xiàng)目


Spring MVC的目錄結(jié)構(gòu)

Spring MVC教程

使用Maven的Spring MVC的目錄結(jié)構(gòu)

Spring MVC教程


必需的Jar文件或Maven依賴項(xiàng)

要運(yùn)行此示例,您需要加載:

Spring Core jar文件 Spring Web jar文件 JSP + JSTL jar文件(如果使用其他視圖技術(shù),則加載相應(yīng)的jar文件)。

下載spring的所有jar文件,包括JSP和JSTL 。

如果您使用的是Maven,則無(wú)需添加jar文件?,F(xiàn)在,您需要將maven依賴項(xiàng)添加到pom.xml文件。

1、在pom.xml文件中提供項(xiàng)目信息和配置。

pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.nhooo</groupId>
  <artifactId>SpringMVC</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>SpringMVC Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
    
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.1.1.RELEASE</version>
</dependency>
<!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
<dependency>  
    <groupId>javax.servlet</groupId>  
    <artifactId>servlet-api</artifactId>  
    <version>3.0-alpha-1</version>  
</dependency>
  </dependencies>
  <build>
    <finalName>SpringMVC</finalName>
  </build>
</project>

2、創(chuàng)建控制器類

要?jiǎng)?chuàng)建控制器類,我們使用兩個(gè)注釋@Controller和@RequestMapping。

@Controller注釋將該類標(biāo)記為Controller。

@Requestmapping批注用于映射具有指定URL名稱的類。

HelloController.java

package com.nhooo;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class HelloController {
@RequestMapping("/")
  public String display()
  {
    return "index";
  } 
}

3、在web.xml文件中提供控制器的條目

在此xml文件中,我們指定Servlet類DispatcherServlet充當(dāng)Spring Web MVC中的前端控制器。 html文件的所有傳入請(qǐng)求都將轉(zhuǎn)發(fā)到DispatcherServlet。

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>SpringMVC</display-name>
   <servlet>  
    <servlet-name>spring</servlet-name>  
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
    <load-on-startup>1</load-on-startup>    
</servlet>  
<servlet-mapping>  
    <servlet-name>spring</servlet-name>  
    <url-pattern>/</url-pattern>  
</servlet-mapping>  
</web-app>

4、在xml文件中定義bean。

這是重要的配置文件,需要在其中指定View組件。

context: component-scan元素定義了DispatcherServlet的基本包。將搜索控制器類。

此xml文件應(yīng)位于WEB-INF目錄內(nèi)。

spring-servlet.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">
  <!-- Provide support for component scanning -->
  <context:component-scan base-package="com.nhooo" />
  <!--Provide support for conversion, formatting and validation -->
  <mvc:annotation-driven/>
</beans>

5、在JSP頁(yè)面中顯示消息

這是簡(jiǎn)單的JSP頁(yè)面,顯示Controller返回的消息。

index.jsp

<html>
<body>
<p>Welcome to Spring MVC Tutorial</p>
</body>
</html>

輸出:

Spring MVC教程


Spring MVC索引



丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清