Thursday, October 3, 2024
Google search engine
HomeLanguagesJavaSpring – MVC Framework

Spring – MVC Framework

Spring MVC Framework follows the Model-View-Controller design pattern. It is used to develop web applications. It works around DispatcherServlet. DispatcherServlet handles all the HTTP requests and responses. It dispatches the requests to handlers. It uses @Controller and @RequestMapping as default request handlers. The @Controller annotation defines that a particular class is a controller. @RequestMapping annotation maps web requests to Spring Controller methods. The terms model, view, and controller are as follows:

  • Model: The Model encapsulates the application data.
  • View: View renders the model data and also generates HTML output that the client’s browser can interpret.
  • Controller: The Controller processes the user requests and passes them to the view for rendering.

Spring MVC Framework works as follows:

  1. All the incoming requests are intercepted by the DispatcherServlet that works as the front controller.
  2. The DispatcherServlet then gets an entry of handler mapping from the XML file and forwards the request to the controller.
  3. The object of ModelAndView is returned by the controller.
  4. The DispatcherServlet checks the entry of the view resolver in the XML file and invokes the appropriate view component.

Advantages of Spring MVC Framework

  • The container is used for the development and deployment of applications and uses a lightweight servlet.
  • It enables rapid and parallel development.
  • Development of the application becomes fast.
  • Easy for multiple developers to work together.
  • Easier to Update the application.
  • It is Easier to Debug because we have multiple levels in the application.

Disadvantages of Spring MVC Framework

  • It has high complexity to develop the applications using this pattern.
  • It is not suitable for small applications which affect the application’s performance and design.

Create Your First Spring MVC Application

Consider the following example:

Step 0: Setup your project with maven use the required archtype to get the required folders directory and configure the server with your project.

Step 1: Load the spring jar files or add the dependencies if Maven is used. Add the following dependencies in pom.xml

pom.xml

XML




         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.javatpoint</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
       
    <dependency
      <groupId>org.springframework</groupId
      <artifactId>spring-webmvc</artifactId
      <version>5.1.1.RELEASE</version
    </dependency
   
    <dependency>   
      <groupId>javax.servlet</groupId>   
      <artifactId>servlet-api</artifactId>   
      <version>3.0-alpha-1</version>   
    </dependency
   
  </dependencies
  <build
    <finalName>SpringMVC</finalName
  </build
</project>


Step 2: Create the Controller Class

HelloGeek.java

Java




@Controller 
public class HelloGeek { 
@RequestMapping("/"
    public String display() 
    
        return "hello"
    }    
}


Step 3: Provide the name of the controller in the web.xml file as follows:

DispatcherServlet is the front controller in Spring Web MVC. Incoming requests for the HTML file are forwarded to the DispatcherServlet.

web.xml

XML




<?xml version="1.0" encoding="UTF-8"?> 
         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>


Step 4: We have to define the bean in a separate XML file. We have specified the view components in this file.  It is located in the WEB-INF directory.

spring-servlet.xml

XML




<?xml version="1.0" encoding="UTF-8"?> 
    xsi:schemaLocation=" 
   
    <!-- This element defines the base-package where
         DispatcherServlet will search the controller class. --> 
    <context:component-scan base-package="com.geek" /> 
   
    <!--Provide support for conversion,
        formatting and also for validation --> 
    <mvc:annotation-driven/> 
   
</beans>


Step 5: Use JSP to display the message

index.jsp

HTML




<html
<body
   
 
<p>Spring MVC Tutorial!!</p>
 
   
</body
</html>


Step 6: Start the server and run the project. The output is displayed as follows:

Spring MVC Tutorial!!

RELATED ARTICLES

Most Popular

Recent Comments