{"id":7153,"date":"2018-03-03T21:16:47","date_gmt":"2018-03-03T14:16:47","guid":{"rendered":"https:\/\/huongdanjava.com\/?p=7153"},"modified":"2018-03-03T21:16:47","modified_gmt":"2018-03-03T14:16:47","slug":"overview-about-request-processing-in-spring-mvc","status":"publish","type":"post","link":"https:\/\/huongdanjava.com\/overview-about-request-processing-in-spring-mvc.html","title":{"rendered":"Overview about request processing in Spring MVC"},"content":{"rendered":"<p>In the tutorial about <a href=\"https:\/\/huongdanjava.com\/mvc-model.html\" target=\"_blank\" rel=\"noopener\">the MVC Model<\/a>, you guys know that for the web environment, we need a Front Controller to receive the request and return a response. DispatcherServlet is a Front Controller like that in Spring MVC. In this tutorial, we will look at the overview of the Spring DispatcherServlet and request processing process in Spring MVC.<\/p>\n<p>First, I will create a Spring MVC project as an example:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-7155 size-full\" src=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2018\/03\/overview-about-request-processing-in-spring-mvc-1.png\" alt=\"Overview about request processing in Spring MVC\" width=\"596\" height=\"438\" \/><\/p>\n<p>For an overview about the Spring MVC request processing process, let&#8217;s do a test.<\/p>\n<p>In the project above, in the \/src\/main\/resources directory, you see a configuration file for Log4J, log4j.xml. The contents of this file are as follows:<\/p>\n<pre class=\"lang:java decode:true\">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\r\n&lt;!DOCTYPE log4j:configuration PUBLIC \"-\/\/APACHE\/\/DTD LOG4J 1.2\/\/EN\" \"log4j.dtd\"&gt;\r\n&lt;log4j:configuration xmlns:log4j=\"http:\/\/jakarta.apache.org\/log4j\/\"&gt;\r\n\r\n  &lt;!-- Appenders --&gt;\r\n  &lt;appender name=\"console\" class=\"org.apache.log4j.ConsoleAppender\"&gt;\r\n    &lt;param name=\"Target\" value=\"System.out\" \/&gt;\r\n    &lt;layout class=\"org.apache.log4j.PatternLayout\"&gt;\r\n      &lt;param name=\"ConversionPattern\" value=\"%-5p: %c - %m%n\" \/&gt;\r\n    &lt;\/layout&gt;\r\n  &lt;\/appender&gt;\r\n\r\n  &lt;!-- Application Loggers --&gt;\r\n  &lt;logger name=\"com.huongdanjava.springmvc\"&gt;\r\n    &lt;level value=\"info\" \/&gt;\r\n  &lt;\/logger&gt;\r\n\r\n  &lt;!-- 3rdparty Loggers --&gt;\r\n  &lt;logger name=\"org.springframework.core\"&gt;\r\n    &lt;level value=\"info\" \/&gt;\r\n  &lt;\/logger&gt;\r\n\r\n  &lt;logger name=\"org.springframework.beans\"&gt;\r\n    &lt;level value=\"info\" \/&gt;\r\n  &lt;\/logger&gt;\r\n\r\n  &lt;logger name=\"org.springframework.context\"&gt;\r\n    &lt;level value=\"info\" \/&gt;\r\n  &lt;\/logger&gt;\r\n\r\n  &lt;logger name=\"org.springframework.web\"&gt;\r\n    &lt;level value=\"info\" \/&gt;\r\n  &lt;\/logger&gt;\r\n\r\n  &lt;!-- Root Logger --&gt;\r\n  &lt;root&gt;\r\n    &lt;priority value=\"warn\" \/&gt;\r\n    &lt;appender-ref ref=\"console\" \/&gt;\r\n  &lt;\/root&gt;\r\n\r\n&lt;\/log4j:configuration&gt;<\/pre>\n<p>Just change the level of loggers for the Spring framework from info to debug in the &#8220;3rdparty Loggers&#8221; section and the root logger in the priority section from warn to debug. After modification, the contents of the log4j.xml file will look like this:<\/p>\n<pre class=\"lang:java decode:true \">&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\r\n&lt;!DOCTYPE log4j:configuration PUBLIC \"-\/\/APACHE\/\/DTD LOG4J 1.2\/\/EN\" \"log4j.dtd\"&gt;\r\n&lt;log4j:configuration xmlns:log4j=\"http:\/\/jakarta.apache.org\/log4j\/\"&gt;\r\n\r\n  &lt;!-- Appenders --&gt;\r\n  &lt;appender name=\"console\" class=\"org.apache.log4j.ConsoleAppender\"&gt;\r\n    &lt;param name=\"Target\" value=\"System.out\" \/&gt;\r\n    &lt;layout class=\"org.apache.log4j.PatternLayout\"&gt;\r\n      &lt;param name=\"ConversionPattern\" value=\"%-5p: %c - %m%n\" \/&gt;\r\n    &lt;\/layout&gt;\r\n  &lt;\/appender&gt;\r\n\r\n  &lt;!-- Application Loggers --&gt;\r\n  &lt;logger name=\"com.huongdanjava.springmvc\"&gt;\r\n    &lt;level value=\"info\" \/&gt;\r\n  &lt;\/logger&gt;\r\n\r\n  &lt;!-- 3rdparty Loggers --&gt;\r\n  &lt;logger name=\"org.springframework.core\"&gt;\r\n    &lt;level value=\"debug\" \/&gt;\r\n  &lt;\/logger&gt;\r\n\r\n  &lt;logger name=\"org.springframework.beans\"&gt;\r\n    &lt;level value=\"debug\" \/&gt;\r\n  &lt;\/logger&gt;\r\n\r\n  &lt;logger name=\"org.springframework.context\"&gt;\r\n    &lt;level value=\"debug\" \/&gt;\r\n  &lt;\/logger&gt;\r\n\r\n  &lt;logger name=\"org.springframework.web\"&gt;\r\n    &lt;level value=\"debug\" \/&gt;\r\n  &lt;\/logger&gt;\r\n\r\n  &lt;!-- Root Logger --&gt;\r\n  &lt;root&gt;\r\n    &lt;priority value=\"debug\" \/&gt;\r\n    &lt;appender-ref ref=\"console\" \/&gt;\r\n  &lt;\/root&gt;\r\n\r\n&lt;\/log4j:configuration&gt;\r\n<\/pre>\n<p>Now, let&#8217;s try running our application. You can refer to how to run Spring MVC application <a href=\"https:\/\/huongdanjava.com\/run-web-application-maven-jetty-plugin.html\" target=\"_blank\" rel=\"noopener\">here<\/a>. I configured the Maven Jetty Plugin as follows:<\/p>\n<pre class=\"lang:xhtml decode:true \">&lt;plugin&gt;\r\n    &lt;groupId&gt;org.eclipse.jetty&lt;\/groupId&gt;\r\n    &lt;artifactId&gt;jetty-maven-plugin&lt;\/artifactId&gt;\r\n    &lt;version&gt;9.3.0.v20150612&lt;\/version&gt;\r\n    &lt;configuration&gt;\r\n        &lt;webApp&gt;\r\n            &lt;contextPath&gt;\/springmvc&lt;\/contextPath&gt;\r\n        &lt;\/webApp&gt;  \r\n    &lt;\/configuration&gt;\r\n&lt;\/plugin&gt;<\/pre>\n<p>Result:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-7156 size-full\" src=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2018\/03\/overview-about-request-processing-in-spring-mvc-2.png\" alt=\"Overview about request processing in Spring MVC\" width=\"700\" height=\"323\" \/><\/p>\n<p>Now look at the console in our STS IDE, and you&#8217;ll see the following logs:<\/p>\n<pre class=\"lang:java decode:true\">DEBUG: org.springframework.web.servlet.DispatcherServlet - DispatcherServlet with name 'appServlet' processing GET request for [\/springmvc\/]\r\nDEBUG: org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Looking up handler method for path \/\r\nDEBUG: org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Returning handler method [public java.lang.String com.huongdanjava.springmvc.HomeController.home(java.util.Locale,org.springframework.ui.Model)]\r\nDEBUG: org.springframework.beans.factory.support.DefaultListableBeanFactory - Returning cached instance of singleton bean 'homeController'\r\nDEBUG: org.springframework.web.servlet.DispatcherServlet - Last-Modified value for [\/springmvc\/] is: -1\r\nINFO : com.huongdanjava.springmvc.HomeController - Welcome home! The client locale is en_US.\r\nDEBUG: org.springframework.web.servlet.DispatcherServlet - Rendering view [org.springframework.web.servlet.view.JstlView: name 'home'; URL [\/WEB-INF\/views\/home.jsp]] in DispatcherServlet with name 'appServlet'\r\nDEBUG: org.springframework.web.servlet.view.JstlView - Added model object 'serverTime' of type [java.lang.String] to request in view with name 'home'\r\nDEBUG: org.springframework.web.servlet.view.JstlView - Forwarding to resource [\/WEB-INF\/views\/home.jsp] in InternalResourceView 'home'\r\nDEBUG: org.springframework.web.servlet.DispatcherServlet - Successfully completed request\r\n<\/pre>\n<p>Obviously, dissection of logs above, you can see, DispatcherServlet will be the first class to receive the request, then it uses the RequestMappingHandlerMapping class to find the appropriate controller to handle our request.<\/p>\n<p>After the HomeController has finished processing the request and returns the result, the DispatcherServlet will find the corresponding view object returned by the HomeController, which is JstlView.<\/p>\n<p>At the end of processing a request, DispatcherServlet will print a message &#8220;Successfully completed request&#8221;.<\/p>\n<p>For an overview, the process of processing a request in Spring MVC can be summarized using the following diagram:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-7157 size-full\" src=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2018\/03\/overview-about-request-processing-in-spring-mvc-3.png\" alt=\"Overview about request processing in Spring MVC\" width=\"621\" height=\"329\" \/><\/p>\n<ol>\n<li>Request from the user to our web application, DispatcherServlet will be the object receiving the request.<\/li>\n<li>DispatcherServlet will find and navigate the request to the appropriate handler, here are the controllers in our web application.<\/li>\n<li>Processing the request<\/li>\n<li>Prepare the model and select the display view.<\/li>\n<li>Returns the request processing result to the DispatcherServlet.<\/li>\n<li>The DispatcherServlet will invoke the appropriate View Template to handle the display on the view using the model.<\/li>\n<li>View Template returns results to DispatcherServlet.<\/li>\n<li>Returns the response to the user.<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n\n\n<div class=\"kk-star-ratings kksr-auto kksr-align-right kksr-valign-bottom\"\n    data-payload='{&quot;align&quot;:&quot;right&quot;,&quot;id&quot;:&quot;7153&quot;,&quot;slug&quot;:&quot;default&quot;,&quot;valign&quot;:&quot;bottom&quot;,&quot;ignore&quot;:&quot;&quot;,&quot;reference&quot;:&quot;auto&quot;,&quot;class&quot;:&quot;&quot;,&quot;count&quot;:&quot;0&quot;,&quot;legendonly&quot;:&quot;&quot;,&quot;readonly&quot;:&quot;&quot;,&quot;score&quot;:&quot;0&quot;,&quot;starsonly&quot;:&quot;&quot;,&quot;best&quot;:&quot;5&quot;,&quot;gap&quot;:&quot;4&quot;,&quot;greet&quot;:&quot;&quot;,&quot;legend&quot;:&quot;0\\\/5 - (0 votes)&quot;,&quot;size&quot;:&quot;24&quot;,&quot;title&quot;:&quot;Overview about request processing in Spring MVC&quot;,&quot;width&quot;:&quot;0&quot;,&quot;_legend&quot;:&quot;{score}\\\/{best} - ({count} {votes})&quot;,&quot;font_factor&quot;:&quot;1.25&quot;}'>\n            \n<div class=\"kksr-stars\">\n    \n<div class=\"kksr-stars-inactive\">\n            <div class=\"kksr-star\" data-star=\"1\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"2\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"3\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"4\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" data-star=\"5\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n    <\/div>\n    \n<div class=\"kksr-stars-active\" style=\"width: 0px;\">\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n            <div class=\"kksr-star\" style=\"padding-right: 4px\">\n            \n\n<div class=\"kksr-icon\" style=\"width: 24px; height: 24px;\"><\/div>\n        <\/div>\n    <\/div>\n<\/div>\n                \n\n<div class=\"kksr-legend\" style=\"font-size: 19.2px;\">\n            <span class=\"kksr-muted\"><\/span>\n    <\/div>\n    <\/div>\n","protected":false},"excerpt":{"rendered":"<p>In the tutorial about the MVC Model, you guys know that for the web environment, we need a Front Controller to receive the request and return a response. DispatcherServlet is a Front Controller like that in Spring MVC. In this tutorial, we will look at&hellip; <a href=\"https:\/\/huongdanjava.com\/overview-about-request-processing-in-spring-mvc.html\">Read More<\/a><\/p>\n","protected":false},"author":1,"featured_media":82,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[678],"tags":[],"class_list":["post-7153","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-spring-mvc-en","clearfix"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Overview about request processing in Spring MVC - Huong Dan Java<\/title>\n<meta name=\"description\" content=\"In this tutorial, I introduce with you all an overview about request processing in Spring MVC.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/huongdanjava.com\/overview-about-request-processing-in-spring-mvc.html\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Overview about request processing in Spring MVC - Huong Dan Java\" \/>\n<meta property=\"og:description\" content=\"In this tutorial, I introduce with you all an overview about request processing in Spring MVC.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/huongdanjava.com\/overview-about-request-processing-in-spring-mvc.html\" \/>\n<meta property=\"og:site_name\" content=\"Huong Dan Java\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/nhkhanh2406\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/nhkhanh2406\" \/>\n<meta property=\"article:published_time\" content=\"2018-03-03T14:16:47+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/huongdanjava.com\/wp-content\/uploads\/2016\/02\/spring-framework.png\" \/>\n\t<meta property=\"og:image:width\" content=\"300\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Khanh Nguyen\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/KhanhNguyenJ\" \/>\n<meta name=\"twitter:site\" content=\"@KhanhNguyenJ\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Khanh Nguyen\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/overview-about-request-processing-in-spring-mvc.html#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/overview-about-request-processing-in-spring-mvc.html\"},\"author\":{\"name\":\"Khanh Nguyen\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#\\\/schema\\\/person\\\/dc859d7f8cbea3b593e6738de9cbb82d\"},\"headline\":\"Overview about request processing in Spring MVC\",\"datePublished\":\"2018-03-03T14:16:47+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/overview-about-request-processing-in-spring-mvc.html\"},\"wordCount\":384,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#\\\/schema\\\/person\\\/dc859d7f8cbea3b593e6738de9cbb82d\"},\"image\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/overview-about-request-processing-in-spring-mvc.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2016\\\/02\\\/spring-framework.png\",\"articleSection\":[\"Spring MVC\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/huongdanjava.com\\\/overview-about-request-processing-in-spring-mvc.html#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/overview-about-request-processing-in-spring-mvc.html\",\"url\":\"https:\\\/\\\/huongdanjava.com\\\/overview-about-request-processing-in-spring-mvc.html\",\"name\":\"Overview about request processing in Spring MVC - Huong Dan Java\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/overview-about-request-processing-in-spring-mvc.html#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/overview-about-request-processing-in-spring-mvc.html#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2016\\\/02\\\/spring-framework.png\",\"datePublished\":\"2018-03-03T14:16:47+00:00\",\"description\":\"In this tutorial, I introduce with you all an overview about request processing in Spring MVC.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/overview-about-request-processing-in-spring-mvc.html#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/huongdanjava.com\\\/overview-about-request-processing-in-spring-mvc.html\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/overview-about-request-processing-in-spring-mvc.html#primaryimage\",\"url\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2016\\\/02\\\/spring-framework.png\",\"contentUrl\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2016\\\/02\\\/spring-framework.png\",\"width\":300,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/overview-about-request-processing-in-spring-mvc.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/huongdanjava.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Overview about request processing in Spring MVC\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#website\",\"url\":\"https:\\\/\\\/huongdanjava.com\\\/\",\"name\":\"Huong Dan Java\",\"description\":\"Java development tutorials\",\"publisher\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#\\\/schema\\\/person\\\/dc859d7f8cbea3b593e6738de9cbb82d\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/huongdanjava.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/#\\\/schema\\\/person\\\/dc859d7f8cbea3b593e6738de9cbb82d\",\"name\":\"Khanh Nguyen\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg\",\"url\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg\",\"contentUrl\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg\",\"width\":1267,\"height\":1517,\"caption\":\"Khanh Nguyen\"},\"logo\":{\"@id\":\"https:\\\/\\\/huongdanjava.com\\\/wp-content\\\/uploads\\\/2021\\\/07\\\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg\"},\"description\":\"I love Java and everything related to Java.\",\"sameAs\":[\"https:\\\/\\\/huongdanjava.com\",\"https:\\\/\\\/www.facebook.com\\\/nhkhanh2406\",\"https:\\\/\\\/x.com\\\/https:\\\/\\\/twitter.com\\\/KhanhNguyenJ\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Overview about request processing in Spring MVC - Huong Dan Java","description":"In this tutorial, I introduce with you all an overview about request processing in Spring MVC.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/huongdanjava.com\/overview-about-request-processing-in-spring-mvc.html","og_locale":"en_US","og_type":"article","og_title":"Overview about request processing in Spring MVC - Huong Dan Java","og_description":"In this tutorial, I introduce with you all an overview about request processing in Spring MVC.","og_url":"https:\/\/huongdanjava.com\/overview-about-request-processing-in-spring-mvc.html","og_site_name":"Huong Dan Java","article_publisher":"https:\/\/www.facebook.com\/nhkhanh2406","article_author":"https:\/\/www.facebook.com\/nhkhanh2406","article_published_time":"2018-03-03T14:16:47+00:00","og_image":[{"width":300,"height":300,"url":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2016\/02\/spring-framework.png","type":"image\/png"}],"author":"Khanh Nguyen","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/KhanhNguyenJ","twitter_site":"@KhanhNguyenJ","twitter_misc":{"Written by":"Khanh Nguyen","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/huongdanjava.com\/overview-about-request-processing-in-spring-mvc.html#article","isPartOf":{"@id":"https:\/\/huongdanjava.com\/overview-about-request-processing-in-spring-mvc.html"},"author":{"name":"Khanh Nguyen","@id":"https:\/\/huongdanjava.com\/#\/schema\/person\/dc859d7f8cbea3b593e6738de9cbb82d"},"headline":"Overview about request processing in Spring MVC","datePublished":"2018-03-03T14:16:47+00:00","mainEntityOfPage":{"@id":"https:\/\/huongdanjava.com\/overview-about-request-processing-in-spring-mvc.html"},"wordCount":384,"commentCount":0,"publisher":{"@id":"https:\/\/huongdanjava.com\/#\/schema\/person\/dc859d7f8cbea3b593e6738de9cbb82d"},"image":{"@id":"https:\/\/huongdanjava.com\/overview-about-request-processing-in-spring-mvc.html#primaryimage"},"thumbnailUrl":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2016\/02\/spring-framework.png","articleSection":["Spring MVC"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/huongdanjava.com\/overview-about-request-processing-in-spring-mvc.html#respond"]}]},{"@type":"WebPage","@id":"https:\/\/huongdanjava.com\/overview-about-request-processing-in-spring-mvc.html","url":"https:\/\/huongdanjava.com\/overview-about-request-processing-in-spring-mvc.html","name":"Overview about request processing in Spring MVC - Huong Dan Java","isPartOf":{"@id":"https:\/\/huongdanjava.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/huongdanjava.com\/overview-about-request-processing-in-spring-mvc.html#primaryimage"},"image":{"@id":"https:\/\/huongdanjava.com\/overview-about-request-processing-in-spring-mvc.html#primaryimage"},"thumbnailUrl":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2016\/02\/spring-framework.png","datePublished":"2018-03-03T14:16:47+00:00","description":"In this tutorial, I introduce with you all an overview about request processing in Spring MVC.","breadcrumb":{"@id":"https:\/\/huongdanjava.com\/overview-about-request-processing-in-spring-mvc.html#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/huongdanjava.com\/overview-about-request-processing-in-spring-mvc.html"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/huongdanjava.com\/overview-about-request-processing-in-spring-mvc.html#primaryimage","url":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2016\/02\/spring-framework.png","contentUrl":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2016\/02\/spring-framework.png","width":300,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/huongdanjava.com\/overview-about-request-processing-in-spring-mvc.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/huongdanjava.com\/"},{"@type":"ListItem","position":2,"name":"Overview about request processing in Spring MVC"}]},{"@type":"WebSite","@id":"https:\/\/huongdanjava.com\/#website","url":"https:\/\/huongdanjava.com\/","name":"Huong Dan Java","description":"Java development tutorials","publisher":{"@id":"https:\/\/huongdanjava.com\/#\/schema\/person\/dc859d7f8cbea3b593e6738de9cbb82d"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/huongdanjava.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/huongdanjava.com\/#\/schema\/person\/dc859d7f8cbea3b593e6738de9cbb82d","name":"Khanh Nguyen","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/07\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg","url":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/07\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg","contentUrl":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/07\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg","width":1267,"height":1517,"caption":"Khanh Nguyen"},"logo":{"@id":"https:\/\/huongdanjava.com\/wp-content\/uploads\/2021\/07\/CC6FAC58-D227-4DD8-93D1-6D6A795577E3_1_201_a.jpeg"},"description":"I love Java and everything related to Java.","sameAs":["https:\/\/huongdanjava.com","https:\/\/www.facebook.com\/nhkhanh2406","https:\/\/x.com\/https:\/\/twitter.com\/KhanhNguyenJ"]}]}},"_links":{"self":[{"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/posts\/7153","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/comments?post=7153"}],"version-history":[{"count":3,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/posts\/7153\/revisions"}],"predecessor-version":[{"id":7159,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/posts\/7153\/revisions\/7159"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/media\/82"}],"wp:attachment":[{"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/media?parent=7153"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/categories?post=7153"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/huongdanjava.com\/wp-json\/wp\/v2\/tags?post=7153"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}