Heim  >  Artikel  >  Java  >  Einführung in Spring MVC und einführende Beispiele (ausführliche Erklärungen mit Bildern und Texten)

Einführung in Spring MVC und einführende Beispiele (ausführliche Erklärungen mit Bildern und Texten)

怪我咯
怪我咯Original
2017-06-25 09:59:563771Durchsuche

Hinweis: Der gesamte Inhalt des Artikels ist ein Auszug aus dem Labor-Tutorial [Spring MVC Simple Tutorial]

1 Was ist Spring MVC?

Spring MVC ist ein Nachfolgeprodukt von SpringFrameWork wurde in Spring Inside Web Flow integriert und ist ein leistungsstarkes und flexibles Web-Framework. Spring MVC stellt ein DispatcherServlet als Front-End-Controller zum Versenden von Anforderungen bereit. Über die Strategieschnittstelle ist das Spring-Framework hochgradig konfigurierbar. Spring MVC umfasst außerdem eine Vielzahl von Ansichtstechnologien wie Java Server Pages (JSP), Velocity, Tiles, iText, POI usw. Spring MVC trennt die Rollen von Controllern, Modellobjekten, Dispatchern und Handlerobjekten, wodurch sie einfacher angepasst werden können.

Das Spring MVC-Framework besteht hauptsächlich aus DispatcherServlet, Prozessor-Mapper, Prozessoradapter, Prozessor (Controller), View Resolver und View.

2. Spring MVC-Ausführungsprozess

Der High-Level-Anforderungsverarbeitungsworkflow von Spring MVC ist wie folgt (Bild von der offiziellen Spring-Website):

Einführung in Spring MVC und einführende Beispiele (ausführliche Erklärungen mit Bildern und Texten)

Nach der Aufschlüsselung sieht der Spring MVC-Ausführungsprozess wie folgt aus und umfasst insgesamt acht Schritte:

Einführung in Spring MVC und einführende Beispiele (ausführliche Erklärungen mit Bildern und Texten)

Erklärung der Spring MVC-bezogenen Schnittstellen:

(1 ) DispatcherServlet

Front-End-Controller, alle Anforderungen werden gleichmäßig über ihn verteilt und die Anforderungen werden an den entsprechenden Handler verteilt.

(2) HandlerMapping (Prozessor-Mapper)

Analysieren Sie den Anforderungslink und suchen Sie dann basierend auf dem Anforderungslink die Klasse, die die Anforderung ausführt (den Handler namens HandlerMapping).

(3) HandlerAdapter (Prozessoradapter)

Rufen Sie bestimmte Methoden auf, um Anfragen von Benutzern zu verarbeiten.

(4)Controller

Controller verarbeitet die Benutzeranforderung. Nachdem der Controller die Benutzeranforderung verarbeitet hat, gibt er das ModelAndView-Objekt an den DispatcherServlet-Front-End-Controller zurück.

Aus Makroperspektive ist DispatcherServlet der Controller der gesamten Webanwendung; aus Mikroperspektive ist Controller der Controller bei der Verarbeitung einer einzelnen HTTP-Anfrage.

(5) ViewResolver (Ansichtslöser)

Lösen Sie MdoelAndView auf, ändern Sie den logischen Ansichtsnamen in MdoelAndView in ein echtes Ansichtsobjekt und nehmen Sie das Modell in MdoelAndView heraus.

Spring MVC wurde bereits kurz vorgestellt. Nehmen wir die einfache Benutzerregistrierung als Beispiel, um einige Grundprinzipien und Anwendungen von Spring MVC zu verstehen.

3. Projektdateistruktur

Einführung in Spring MVC und einführende Beispiele (ausführliche Erklärungen mit Bildern und Texten)

4. Entwicklungsvorbereitung

Spring MVC-bezogene Dateien werden auf dem Server abgelegt Im Laborgebäude öffnen Sie bitte Experimentelle Schritte

wget
1 Erstellen Sie ein neues Projekt

Erstellen Sie ein neues Webprojekt (Dynamic Web Project) in Eclipse und benennen Sie es
unzip Spring-jars.zip
.

Bitte aktivieren Sie die Option „Web.xml automatisch generieren“

.

SpringMVCTestKopieren Sie alle JAR-Pakete im

-Pfad in das

-Verzeichnis des Projekts.

/home/shiyanlou/Spring-jars/2 Konfigurieren Sie die web.xml-Datei WebContent/WEB-INF/lib/

Ändern Sie den Inhalt der web.xml-Datei wie folgt:

Einführung in Spring MVC und einführende Beispiele (ausführliche Erklärungen mit Bildern und Texten)

Konfigurieren In web.xml

benötigt DispatchcerServlet beim Laden eine Spring MVC-Konfigurationsdatei. Standardmäßig wird unter

nach der entsprechenden

-Datei gesucht .

<?xml  version="1.0" encoding="UTF-8"?>
<web-app>
    <display-name>SpringMVCTest</display-name>

    <!-- 配置 Spring MVC DispatchcerServlet 前端控制器 -->
    <servlet>
        <servlet-name>springmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <!-- contextConfigLocation 是参数名称,该参数的值包含 Spring MVC 的配置文件路径 -->
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/springmvc-config.xml</param-value>
        </init-param>
        <!-- 在 Web 应用启动时立即加载 Servlet -->
        <load-on-startup>1</load-on-startup>
    </servlet>
    <!-- Servlet 映射声明 -->
    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <!-- 监听当前域的所有请求 -->
        <url-pattern>/</url-pattern>
    </servlet-mapping>
    <!-- 添加 register.jsp 为首页 -->
    <welcome-file-list>
        <welcome-file>register.jsp</welcome-file>
    </welcome-file-list>
</web-app>
Die Spring MVC-Konfigurationsdatei kann an einer beliebigen Stelle abgelegt werden. Beschreiben Sie sie einfach mit dem Servlet-Unterelement

, sehen Sie sich den obigen Beispielcode an, dann sucht DispatchcerServlet nach DispatchcerServlet. WEB-INF[servlet-name]-servlet.xml3 springmvc-config.xml-Datei springmvc-servlet.xml

Erstellen Sie eine neue Spring MVC-Konfigurationsdatei

im Verzeichnis init-param, konfigurieren Sie den Spring MVC Controller und fügen Sie den folgenden Code hinzu: /WEB-INF/springmvc-config.xml

In der obigen Konfigurationsdatei verwendet Spring einen Scanmechanismus, um alle annotationsbasierten Controller-Klassen in der Anwendung zu finden. In diesem Beispiel werden alle Java-Dateien unter dem Paket

und seinen Unterpaketen gescannt .

WebContent/WEB-INF/Der Annotation-Typ-Prozessor-Mapper DefaultAnnotationHandlerMapping und der Prozessor-Adapter AnnotationMethodHandlerAdapter werden gleichzeitig nach der Zuordnung gemäß der Anforderung konfiguriert, und der AnnotationMethodHandlerAdapter schließt den Aufruf der @RequestMapping-Annotationsmethode ab (unten beschrieben). der Controller-Klasse. springmvc-config.xml

最后配置的视图解析器 InternalResourceViewResolver 用来解析视图,将 View 呈现给用户。视图解析器中配置的 prefix表示视图的前缀, suffix表示视图的后缀。

注:在 Spring4.0 之后,如果不配置处理映射器、处理器适配器和视图解析器,会使用默认的。

4 实体类 User

在项目目录 /Java Resources/src 的包 com.shiyanlou.springmvc.entity 下新建类 User.java,包含 id、username、password 和 age 属性,代码如下:

package com.shiyanlou.springmvc.entity;

import java.io.Serializable;

public class User implements Serializable {

    private static final long serialVersionUID = 1L;
    private Integer id;
    private String username;
    private String password;
    private Integer age;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

}

5 Controller 类的实现

在包 com.shiyanlou.springmvc.controller 下新建 Controller 类 UserController.java,具体解释注释已经给出,代码如下:

package com.shiyanlou.springmvc.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;

import com.shiyanlou.springmvc.entity.User;

/**
 * UserController 是一个基于注解的控制器
 * 可以同时处理多个请求动作
 */
@Controller
public class UserController {
    
    /**
    * RequestMapping 用来映射一个请求和请求的方法
    * value="/register" 表示请求由 register 方法进行处理
    */
    @RequestMapping(value="/register")
    public String Register(@ModelAttribute("form") User user, Model model) {  // user:视图层传给控制层的表单对象;model:控制层返回给视图层的对象
        // 在 model 中添加一个名为 "user" 的 user 对象
        model.addAttribute("user", user);
        // 返回一个字符串 " success" 作为视图名称
        return "success";
    }
}

6 JSP 页面

(1)register.jsp

WebContent 目录下新建一个 JSP 页面命名为 register.jsp,代码如下:

nbsp;html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">


<meta>
<title>register page</title>


    
        
User registration
        

                      

        

                      

        

                      

        

                                  

    

(2)success.jsp

WebContent/WEB-INF 目录下新建文件夹 views,并在该路径下新建一个 JSP 页面命名为 success.jsp,代码如下:

nbsp;html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">


<meta>
<title>success page</title>


    <h5>login was successful</h5>
    <p>
        name:${requestScope.user.username}<br> password:${requestScope.user.password}<br> age:${requestScope.user.age}<br>
    </p>

7 运行测试

注:由于在线环境的资源问题,这里启动 tomcat 比较慢,需要大家耐心等待几分钟。如果遇到 Tomcat 启动超时的问题,请按照下图的方法延长 Tomcat 的启动时间。

Einführung in Spring MVC und einführende Beispiele (ausführliche Erklärungen mit Bildern und Texten)

右击 SpringMVCTest 工程,Run As->Run on Server,保持默认选项不变,点击 Finish,一会儿即可看到结果:

Einführung in Spring MVC und einführende Beispiele (ausführliche Erklärungen mit Bildern und Texten)

输入注册信息,点击注册按钮,结果如下:

Einführung in Spring MVC und einführende Beispiele (ausführliche Erklärungen mit Bildern und Texten)

Einführung in Spring MVC und einführende Beispiele (ausführliche Erklärungen mit Bildern und Texten)

Das obige ist der detaillierte Inhalt vonEinführung in Spring MVC und einführende Beispiele (ausführliche Erklärungen mit Bildern und Texten). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn