Heim  >  Artikel  >  Java  >  Warum kann Spring MVC auf HTTP-Anfragen antworten? (Detaillierte Begründung)

Warum kann Spring MVC auf HTTP-Anfragen antworten? (Detaillierte Begründung)

不言
不言nach vorne
2018-10-22 15:14:522042Durchsuche

Der Inhalt dieses Artikels befasst sich mit der Frage, warum Spring MVC auf HTTP-Anfragen antworten kann. (Ausführliche Erläuterung der Gründe), es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird Ihnen hilfreich sein.

Viele Java-Interviewer stellen gerne diese Frage:

In einer Spring MVC-Projektdatei hat der Entwickler kein eigenes Servlet entwickelt, sondern nur die Methode Home-Funktion durch die Annotation definiert @RequestMapping Auf Anfragen an /mvc/test1 antworten.

Warum kann Spring MVC auf HTTP-Anfragen antworten? (Detaillierte Begründung)

Wenn Sie zum Testen die URL http://localhost:9098/MavenSandbox/mvc/test1 verwenden, können Sie die von der Home-Methode zurückgegebene Zeichenfolge beobachten . Dahinter steckt Wie funktioniert es?

Warum kann Spring MVC auf HTTP-Anfragen antworten? (Detaillierte Begründung)

Wir antworten durch unsere eigene Forschung. Setzen Sie einen Haltepunkt in Zeile 53 des obigen Codes. Besuchen Sie die URL http://localhost:9098/MavenSandbox/mvc/test1 erneut und der Haltepunkt wird ausgelöst. Wir beobachten den Aufrufstapel und stellen fest, dass es einen Stapelrahmen DispatcherServlet.doService (HttpServletRequest, HttpServletResponse) gibt. Dieses Servlet ist dafür verantwortlich, die Rückgabezeichenfolge in der mit @RequestMapping annotierten Methode zur HttpServletResponse hinzuzufügen. Aus diesem Grund können wir die Rückgabezeichenfolge im Browser sehen.

Warum kann Spring MVC auf HTTP-Anfragen antworten? (Detaillierte Begründung)

Mal sehen, ob die HttpServletResponse in DispatcherServlet.doService die erwartete Ausgabezeichenfolge enthält. Erweitern Sie die Antwortvariable im Debugger:

Warum kann Spring MVC auf HTTP-Anfragen antworten? (Detaillierte Begründung)

response->outputBuffer->bb->buff, Sie können dies im Buff-String sehen Array-Puffer:

Warum kann Spring MVC auf HTTP-Anfragen antworten? (Detaillierte Begründung)

104 ist der ASCII-Code von H, 101 ist der ASCII-Code von e und 108 ist der ASCII-Code von l, also Es ist bewiesen, dass die Antwort die vom Entwickler in der Home-Methode zurückgegebene Zeichenfolge enthält: Hallo, das ist ein sehr einfaches Beispiel

Woher kommt schließlich das DispatcherServlet?

Es befindet sich im Eclipse-Debugger und ist ein Standard-Servlet des Spring-Frameworks:

org.springframework.web.servlet.DispatcherServlet

Warum kann Spring MVC auf HTTP-Anfragen antworten? (Detaillierte Begründung)

Dieses Servlet ist genau das Servlet, das wir in der web.xml-Datei im WEB-INF-Ordner haben.

Die Antwort an den Interviewer lautet also: Das Spring MVC-Framework erfordert immer noch Servlet, aber dieses Servlet wird vom Spring-Framework bereitgestellt und muss von Anwendungsentwicklern nicht wiederholt implementiert werden.

Warum kann Spring MVC auf HTTP-Anfragen antworten? (Detaillierte Begründung)

Das obige ist der detaillierte Inhalt vonWarum kann Spring MVC auf HTTP-Anfragen antworten? (Detaillierte Begründung). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen