Implementation steps of spring MVC project

Keywords: Programming Spring xml JSP Tomcat

1. Add maven dependency (pom.xml)

<dependencies>

    <!-- Servlet API rely on -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <scope>provided</scope>
    </dependency>

    <!-- jstl -->
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
    </dependency>

    <!-- Spring Web MVC rely on -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-core</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
    </dependency>

</dependencies>

2. Set packing method

<packaging>war</packaging>

3. Add a tomcat packaging plug-in (pom.xml)

  • Add this component, package can be built-in tomcat, without putting war package under tomcat, start directly.
<build>
    <plugins>
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.1</version>
            <executions>
                <execution>
                    <id>tomcat-run</id>
                    <goals>
                        <goal>exec-war-only</goal>
                    </goals>
                    <phase>package</phase>
                    <configuration>
                        <path>/</path>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

4. Implement Controller

package com.imooc.webmvc.controller;

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

@Controller
public class HelloWorldController {

    @RequestMapping("")
    public String index(Model model) {
        return "index";
    }

}

5. Create webapp directory

  • Create the directory webapp under src/main
  • Create WEB-INF directory in webapp directory

6. Configure spring

  • Create the file app-context.xml under / src/main/webapp/WEB-INF
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="
            http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context.xsd">

    <context:component-scan base-package="com.imooc.webmvc" />

    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping" />

    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter" />

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
        <property name="prefix" value="/WEB-INF/jsp/" />
        <property name="suffix" value=".jsp" />
    </bean>

</beans>

7. Deploy dispatcher Servlet

  • Create the file web.xml under src/main/webapp/WEB-INF
<web-app>
    <servlet>
        <servlet-name>app</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/app-context.xml</param-value>
        </init-param>
    </servlet>

    <servlet-mapping>
        <servlet-name>app</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>
</web-app>

8. Create view file

  • Create jsp folder under src/main/webapp/WEB-INF
  • Create index.jsp in the JSP folder
  • The content of this file can be empty temporarily

9. Build operation

  • Enter the module directory through the command line
  • Construction project
    mvn -DMaven.test.skip -U clean package
    
    • It will be found that target will generate a project's jar package
  • Operation item
    java -jar target/webmvc-0.0.1-SNAPSHOT-war-exec.jar
    
  • test
    • Browser visit http://localhost:8080
    • Although there is no content returned (because index.jsp has no content), you can see that the network request return status is 200, indicating the response is successful.

Posted by kee2ka4 on Wed, 27 Nov 2019 08:32:35 -0800