• MVC实现(简单小例子)


    Here I’ll demonstrate simple Spring MVC framework for building web applications.

    First thing first. I’m using below tools which you may need to download if you don’t have already.

    1. Tomcat 7.0.65 – Download link.
    2. Eclipse IDE for Java EE Developers (Mars v4.5.1) – Download link.
    3. Spring 4.2.2 (No download required) – we will use Maven dependency.
    4. JDK 1.8 – Download link.

    Main goal for this tutorial to create Spring MVC Application in the simplest way. This is how ourapplication result will look like. This is a final result once you complete all below steps.

    Welcome page ==> index.jsp

    CrunchifySpringMVCTutorial index.jsp page

    Result returns from Controller Class :)

    Message Coming from Controller

    Now Let’s get started

    Step-1

    Open Eclipse and Create Dynamic Web Project CrunchifySpringMVCTutorial.

    Create Dynamic Web Project in Eclipse


    Crunchify Spring MVC Example

    Step-2

    Make sure you use Target Runtime as Apache Tomcat 7.0

    Step-3

    Convert Project to Maven Project to add all required Spring MVC dependencies to project.

    Steps:

    • Right click on project
    • Configure
    • Convert to Maven project


    Convert CrunchifySpringMVCTutorial to Maven project

    Step-4

    Open pom.xml file and add below jar dependencies to project.

    Srping MCV Dependencies - Crunchify Spring Tutorial

    Here is my pom.xml file.

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <groupId>CrunchifySpringMVCTutorial</groupId>
        <artifactId>CrunchifySpringMVCTutorial</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <packaging>war</packaging>
     
        <dependencies>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>4.1.1.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aop</artifactId>
                <version>4.1.1.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-webmvc</artifactId>
                <version>4.1.1.RELEASE</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-web</artifactId>
                <version>4.1.1.RELEASE</version>
            </dependency>
     
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>jstl</artifactId>
                <version>1.2</version>
            </dependency>
     
            <dependency>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
                <version>1.1.3</version>
            </dependency>
        </dependencies>
        <build>
            <sourceDirectory>src</sourceDirectory>
            <plugins>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.1</version>
                    <configuration>
                        <source>1.7</source>
                        <target>1.7</target>
                    </configuration>
                </plugin>
                <plugin>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>2.4</version>
                    <configuration>
                        <warSourceDirectory>WebContent</warSourceDirectory>
                        <failOnMissingWebXml>false</failOnMissingWebXml>
                    </configuration>
                </plugin>
            </plugins>
        </build>
    </project>

    Step-5

    Create Spring Configuration Bean file. /WebContent/WEB-INF/crunchify-servlet.xml

    <beans xmlns="http://www.springframework.org/schema/beans"
        xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="
            http://www.springframework.org/schema/beans     
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/mvc 
            http://www.springframework.org/schema/mvc/spring-mvc.xsd
            http://www.springframework.org/schema/context 
            http://www.springframework.org/schema/context/spring-context.xsd">
     
        <context:component-scan base-package="com.crunchify.controller" />
     
        <bean id="viewResolver"
            class="org.springframework.web.servlet.view.UrlBasedViewResolver">
            <property name="viewClass"
                value="org.springframework.web.servlet.view.JstlView" />
            <property name="prefix" value="/WEB-INF/jsp/" />
            <property name="suffix" value=".jsp" />
        </bean>
     
    </beans>

    In the above crunchify-servlet.xml  configuration file, we have defined a tag <context:component-scan> . This will allow Spring to load all the components from package com.crunchify.controller  and all its child packages.

    This will load our CrunchifyHelloWorld.class . Also we have defined a bean viewResolver. This bean will resolve the view and add prefix string /WEB-INF/jsp/  and suffix .jsp to the view in ModelAndView. Note that in our CrunchifyHelloWorld class, we have return a ModelAndView object with view name welcome. This will be resolved to path /WEB-INF/jsp/welcome.jsp .

    Step-6

    Map Spring MVC in /WebContent/WEB-INF/web.xml file.

    NOTE: if you don’t see web.xml file in your “dynamic web project” then follow these steps.

    <?xml version="1.0" encoding="UTF-8"?>
    <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 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" version="3.0">
      <display-name>CrunchifySpringMVCTutorial</display-name>
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
      
        <servlet>
            <servlet-name>crunchify</servlet-name>
            <servlet-class>
                org.springframework.web.servlet.DispatcherServlet
            </servlet-class>
            <load-on-startup>1</load-on-startup>
        </servlet>
        <servlet-mapping>
            <servlet-name>crunchify</servlet-name>
            <url-pattern>/welcome.jsp</url-pattern>
            <url-pattern>/welcome.html</url-pattern>
            <url-pattern>*.html</url-pattern>
        </servlet-mapping>
      
    </web-app>

    The above code in web.xml will map DispatcherServlet with url pattern /welcome.jsp. Also note that we have define index.jsp as welcome file.

    One thing to note here is the name of servlet in <servlet-name> tag in web.xml. Once the DispatcherServlet is initialized, it will looks for a file name [servlet-name]-servlet.xml  in WEB-INF folder of web application. In this example, the framework will look for file called crunchify-servlet.xml.

    Step-7

    Create Controller Class.

    • Package: com.crunchify.controller
    • Filename: CrunchifyHelloWorld.java


    Create Spring Controller Class CrunchifyHelloWorld

    package com.crunchify.controller;
     
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.servlet.ModelAndView;
     
    /*
     * 
     */
     
    @Controller
    public class CrunchifyHelloWorld {
     
        @RequestMapping("/welcome")
        public ModelAndView helloWorld() {
     
            String message = "<br><div style='text-align:center;'>"
                    + "<h3>********** Hello World, Spring MVC Tutorial</h3>This message is coming from CrunchifyHelloWorld.java **********</div><br><br>";
            return new ModelAndView("welcome", "message", message);
        }
    }

    Note that we have annotated the CrunchifyHelloWorld class with @Controller and@RequestMapping("/welcome"). When Spring scans our package, it will recognize this bean as being a Controller bean for processing requests. The @RequestMapping annotation tells Spring that this Controller should process all requests beginning with /welcome in the URL path. That includes /welcome/* and/welcome.html.

    The helloWorld() method returns ModelAndView object. The ModelAndView object tries to resolve to a view named “welcome” and the data model is being passed back to the browser so we can access the data within the JSP. The logical view name will resolve to /WEB-INF/jsp/welcome.jsp . Logical name “welcome” which is return in ModelAndView object is mapped to path /WEB-INF/jsp/welcome.jsp.

    The ModelAndView object also contains a message with key “message” and Detailed value. This is the data that we are passing to our view. Normally this will be a value object in form of java bean that will contain the data to be displayed on our view. Here we are simply passing a string.

    Step-8

    The View – Create /WebContent/index.jsp.

    <html>
    <head>
    <title>Spring MVC Tutorial Series by Crunchify.com</title>
    <style type="text/css">
    body {
        background-image: url('http://crunchify.com/bg.png');
    }
    </style>
    </head>
    <body>
        <br>
        <div style="text-align:center">
            <h2>
                Hey You..!! This is your 1st Spring MCV Tutorial..<br> <br>
            </h2>
            <h3>
                <a href="welcome.html">Click here to See Welcome Message... </a>(to
                check Spring MVC Controller... @RequestMapping("/welcome"))
            </h3>
        </div>
    </body>
    </html>

    Create /WebContent/WEB-INF/jsp/welcome.jsp  file.

    <html>
    <head>
    <title>Spring MVC Tutorial by Crunchify - Hello World Spring MVC
        Example</title>
    <style type="text/css">
    body {
        background-image: url('http://crunchify.com/bg.png');
    }
    </style>
    </head>
    <body>${message}
     
        <br>
        <br>
        <div style="font-family: verdana; padding: 10px; border-radius: 10px; font-size: 12px; text-align:center;">
     
            Spring MCV Tutorial by <a href="http://crunchify.com">Crunchify</a>.
            Click <a
                href="http://crunchify.com/category/java-web-development-tutorial/"
                target="_blank">here</a> for all Java and <a
                href='http://crunchify.com/category/spring-mvc/' target='_blank'>here</a>
            for all Spring MVC, Web Development examples.<br>
        </div>
    </body>
    </html>

    After everything this is how your workspace should look like.

    CrunchifySpringMVCTutorial by Crunchify - Eclipse Package Structure

    Step-9

    Right Click on Project -> Run As -> Maven Build...

    Maven Run-as - Maven Build in Eclipse IDE

    Add Goalsclean install. Click Apply and Run.


    Clean Install maven Spring project

    You should see build success message:

    Build Successful - Maven clean install task in Eclipse

    Where are all of my .jar files?

    You will see all .jar files under /target folder. Screenshot.

    Step-10

    Deploy project to Apache Tomcat and start tomcat.

    Start Tomcat Server

    Make sure you see below logs. That means your application is successfully deployed on Tomcat Web Server.

    Application Successfully Deployed on Tomcat Server in Eclipse Mars IDE

    Step-11

    Visit: http://localhost:8080/CrunchifySpringMVCTutorial/ and you should be all set.

    Hurrey.. Now you know Hello World Spring MVC 4 Example. Let me know if you encounter any exception while running this. There are lot more example you can find here.

    Do you want to include JS, CSS and images into JSP file? Follow this tutorial: Best way to Add/Integrate JS, CSS and images into JSP file using ‘mvc:resources mapping’

    Triaging step-1

    Make sure you add Apache Tomcat Server to Targeted Runtime. Which you may have selected in Step-1. Tomcat 7 or 8 any – server should work.

    Add Target Runtime on project

    Triaging Step-2

    Make sure to update all maven dependencies.

    Force Update dependencies - Spring MVC tutorial

  • 相关阅读:
    BZOJ 1823: [JSOI2010]满汉全席 [2-SAT]
    POJ 3683 Priest John's Busiest Day[2-SAT 构造解]
    Centos出现-bash: unzip: command not found的解决办法
    物理cpu与逻辑cpu概述
    如何正确查看Linux机器内存使用情况
    connections java.net.BindException: Address already in use_解决方案
    Linux查看端口、进程情况及kill进程
    linux如何查看端口被哪个进程占用?
    如何正确查看Linux机器内存使用情况
    TPS和事务响应时间的关系
  • 原文地址:https://www.cnblogs.com/sjjsh/p/5255747.html
Copyright © 2020-2023  润新知