Heim > Java > javaLernprogramm > Detaillierte Einführung in den SpringMVC-Workflow (mit Code)

Detaillierte Einführung in den SpringMVC-Workflow (mit Code)

不言
Freigeben: 2018-10-15 15:37:39
nach vorne
10606 Leute haben es durchsucht

Dieser Artikel bietet Ihnen eine detaillierte Einführung in den SpringMVC-Workflow (mit Code). Ich hoffe, dass er für Freunde hilfreich ist.

SpringMVC-Workflow:

Detaillierte Einführung in den SpringMVC-Workflow (mit Code)

Detailliertes Bild:

Detaillierte Einführung in den SpringMVC-Workflow (mit Code)

SpringMVC-Workflowbeschreibung

1. Der Benutzer sendet eine Nachricht an den Server Beim Senden einer Anfrage wird die Anfrage vom Spring-Front-End-Controller DispatcherServlet abgerufen, wie in der detaillierten Abbildung gezeigt. Schritt 1

2 DispatcherServlet analysiert die Anfrage-URL (zum Beispiel senden wir eine Wenn Sie eine Anfrage mit der folgenden URL stellen:

http://localhost:8080/SpringMVC/hello.action), erhalten Sie die Ressourcenkennung der Anfrage (URI, entspricht hello.action oben). Anschließend wird gemäß dem URI der Handler-Mapper (HandlerMapping) aufgerufen, um alle vom Handler konfigurierten zugehörigen Objekte abzurufen (einschließlich des Handler-Objekts und des dem Handler-Objekt entsprechenden Interceptors) und schließlich in Form eines HandlerExecutionChain-Objekts zurückzugeben.

3.DispatcherServlet ruft den oben zurückgegebenen Handler ab und wählt einen geeigneten HandlerAdapter aus. (Hinweis: Wenn der HandlerAdapter erfolgreich abgerufen wurde, wird die preHandler(...)-Methode des Interceptors zu diesem Zeitpunkt ausgeführt.)

4. Nach Auswahl des entsprechenden HandlerAdapters wird der Handler gestartet hingerichtet. Während des Ausfüllens der Eingabeparameter des Handlers erledigt Spring entsprechend der Konfiguration einige zusätzliche Arbeiten für Sie (wir müssen uns nicht darum kümmern):

EG:

HttpMessageConveter: Fordert die Nachricht (z. B. Json, XML und andere Daten) in ein Objekt an und konvertiert das Objekt in die angegebenen Antwortinformationen

Datenkonvertierung: Führen Sie eine Datenkonvertierung für die Anforderungsnachricht durch. Beispielsweise wird String in Integer, Double usw. umgewandelt.

Datenradikalisierung: Formatieren Sie die Daten der Anforderungsnachricht. Zum Beispiel das Konvertieren von Zeichenfolgen in formatierte Zahlen oder formatierte Datumsangaben usw.

Datenüberprüfung: Überprüfen Sie die Gültigkeit der Daten (Länge, Format usw.) und speichern Sie die Überprüfungsergebnisse in BindingResult oder Error

5 . Nachdem der Handler ausgeführt wurde, geben Sie ein ModelAndView-Objekt (einschließlich des Ansichtsnamens oder des Ansichtsnamens und des Modells) an DispatcherServlet zurück

6 Wählen Sie basierend auf dem zurückgegebenen ModelAndView-Objekt einen geeigneten ViewResolver aus und geben Sie ihn zurück es an DispatcherServlet;

7. ViewResolver kombiniert Modell und Ansicht, um die Ansicht zu rendern

Abschließend wird das Ergebnis des Ansichtsrenderings an den Client zurückgegeben

Erklärung des Komponentennomens:

1. DispatcherServlet: Der Front-End-Controller

entspricht dem vorherigen Controller und ist für den Aufruf anderer Komponenten verantwortlich

2. HandlerMapping: Der Prozessor-Mapper

ist für die Anforderung von Find the Handler (Prozessor) verantwortlich. In SpringMVC können verschiedene Zuordnungen implementiert werden, z. B. XML-Konfigurationsmethode, Annotationsmethode, Schnittstellenmethode. usw.

3. Handler: Backend-Controller

Spezifische Benutzeranfragen werden unter der Kontrolle des Front-End-Controllers verarbeitet, sodass Entwickler im Allgemeinen entsprechend den Anforderungen entwickeln müssen.

4.HandlerAdapter: Prozessoradapter

Die Handlerverarbeitung kann auf mehreren Prozessortypen ausgeführt werden. Dies ist die Anwendung des Adaptermusters.

5. ViewResolver

ist für die Generierung der Ansicht aus den Verarbeitungsergebnissen verantwortlich

nach Bedarf. Nachdem wir den SpringMVC-Workflow verstanden haben, implementieren wir unser Einstiegsprogramm gemäß den Prozessschritten:

1. Importieren Sie unser Spring-Framework-Paket (im Allgemeinen von der offiziellen Website herunterladen). häufiger verwendet)

2. Konfigurieren Sie den Front-End-Controller

<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<!-- 让servlet随服务启动 -->
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.action</url-pattern>
</servlet-mapping>
Nach dem Login kopieren
in web.xml

und sprechen Sie darüber Unsere Abfangmethode hier:

1. URLs mit festen Suffixen abfangen: wie *.action, *.do

2. Alle abfangen: auf / setzen, aber diese Methode führt zu statischen Dateien (css, js.jpg ) wird abgefangen und kann nicht normal angezeigt werden, daher erfordert diese Methode eine spezielle Verarbeitung

Hinweis: Sie können nicht alle Abfangvorgänge auf /* setzen. Diese Methode ist falsch, denn wenn eine Aktion angefordert wird, wird dies der Fall sein wird erneut blockiert, wenn die Aktion zu jsp springt. Abfangen, Ausnahme tritt auf: Die Zuordnungsadresse

kann gemäß dem JSP-Pfad 3 nicht gefunden werden.Legen Sie die Konfigurationsdatei von fest springmvc

<servlet>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>WEB-INF/springmvc.xml</param-value>
</init-param>
</servlet>
Nach dem Login kopieren

4.Entwicklungsprozessor

public class Hello implements Controller{
	@Override
	public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
		List list = new ArrayList<>();
		list.add("one");
		list.add("two");
		ModelAndView mv = new ModelAndView();
		mv.addObject("list",list);
		return mv;
	}
}
Nach dem Login kopieren

5.在springmvc.xml中配置、

<!-- 配置适配器 -->
<bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"></bean>
<!-- 处理器映射器  -->
<!-- 根据bean的 name 查找Handler , 将action的URL 配置在bean的name中-->
<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"></bean>
<!-- 配置处理器 -->
<bean name="/hello.action" class="com.mt.controller.Hello"></bean>
<!-- 配置视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"></bean>
Nach dem Login kopieren

6.视图开发 jsp文件

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
asdfadfadfa
${list }
</body>
</html>
Nach dem Login kopieren

测试结果:   开启服务器后, 发送 http://localhost:8080/SpringMVC/hello.action的请求

页面显示:

Detaillierte Einführung in den SpringMVC-Workflow (mit Code)

对应理解springMVC  的流程即可。

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in den SpringMVC-Workflow (mit Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:cnblogs.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage