zoukankan      html  css  js  c++  java
  • Spring MVC——项目的开发流程

    创建项目(IDEA下)

      打开IDEA,我们开始创建一个简单的Spring MVC项目,流程如下:

      这里要注意一下,我们是基于Maven开发项目,当然是要配置Maven环境的,如果大家之前从来没有配置过Maven,项目创建完成后需要配置一下,否则Maven无法自动为我们导入依赖。

      创建完成之后是这样子如下图所示,左边是项目结构,右边是自动打开的Maven的pom.xml依赖配置文件。

      项目中的文件目录如果大家有所疑问可以参考这篇文章,在这我就不做过多阐述了。


    导入依赖

    接下来要导入Spring MVC项目的依赖了:

      ① Spring MVC有一个核心依赖。

      ② 我们创建的是一个web项目,因此还需要导入web相关的依赖。

      因为这个项目比较简单,没有复杂的功能,所以我们导入上面两个依赖就好了,在后续的开发中,我们可以根据需要导入其他依赖项,如:json处理依赖、验证码组件依赖、文件上传依赖等。

      我们只需在pom.xml文件的project标签中加入如下配置就好了:

    <dependencies>
    
        <!--1.Spring MVC核心依赖-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.1.6.RELEASE</version>
        </dependency>
    
    
        <!-- 2.web相关依赖-->
        <dependency>
            <!-- jstl 支持 -->
            <groupId>javax.servlet</groupId>
            <artifactId>jstl</artifactId>
            <version>1.2</version>
        </dependency>
        <dependency>
            <!-- servlet编译环境 -->
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.1.0</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <!-- jsp编译环境 -->
            <groupId>javax.servlet</groupId>
            <artifactId>jsp-api</artifactId>
            <version>2.0</version>
            <scope>provided</scope>
        </dependency>
    
    
    </dependencies>

    web应用配置

    war包配置

      这是一个web项目,在项目开发完成后可以部署到服务器上,如何部署呢?我们可以把项目打包成一个war包,然后部署。因此,我们需要在pom.xml中配置一下,将如下信息加入到pom.xml的project标签内

    <packaging>war</packaging>

      一般放到这个位置:

    创建web目录

      在main目录下创建webapp文件夹,然后在webapp文件夹内创建WEB-INF文件夹,结果如下:

      webapp目录就是我们的web目录,里面存放动态、静态资源和配置文件,如jsp文件、js文件、css文件、HTML文件等。

      WEB-INF目录下只有一个文件,就是我们的web配置文件:web.xml。

    生成web.xml

      接下来,我们要生成我们的web.xml配置文件。我们让IDEA自动给我们生成,会自动生成顶部配置,这样我们就不用自己写了,步骤如下:

      下一步, 纠正web.xml的生成位置:

      然后依次点击OK、OK,web.xml就生成了,效果如下:


    前端控制器

      前端控制器是Spring MVC的核心,也称核心控制器。

    前端控制器的作用

      1. 前端,负责接受所有请求。

      2. 加载mvc.xml,启动Spring MVC工厂。

      3. Spring MVC流程调度。

      下来我们来配置一下前端控制器,在刚生成的web.xml文件的web-app标签中加入我们的前端控制器,配置如下:

    <!--Spring MVC的前端(核心)控制器-->
    <servlet>
        <servlet-name>mvc.ss</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        
        <!--可选配置-->
        <!--servlet默认是懒汉式加载的,此配置设置其为饿汉式加载-->
        <load-on-startup>1</load-on-startup>
    
    </servlet>
    <!--设置接收所有请求-->
    <servlet-mapping>
        <servlet-name>mvc.ss</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

    后端控制器

    创建后端控制器

      前端控制器接受的请求,会根据url委派制相应的后端控制器去处理,然后将结果返回至前端控制器,然后前端控制器再进一步委派。所以后端控制器就是处理我们请求的,它实际是一个类,类中有许多的方法,对应一个一个的url访问路径,让我们来配置一下它吧。

      在java目录下创建包:com.ss.web,然后在包中创建控制器类:HelloController.java。

    配置后端控制器

      现在的HelloController.java还不是一个真正的后端控制器,因为我们还没有配置,我们做如下配置:

    package com.ss.web;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    
    @Controller     // 声明控制器
    @RequestMapping("/home")    // 主路径
    public class HelloController {
    
        @RequestMapping("/hello")   // 从路径,对应:/home/hello
        public String hello(){
            System.out.println("业务一执行");
            return "hello";
        }
    
        @RequestMapping("/goods")   // 从路径,对应:/home/goods
        public String login(){
            System.out.println("业务二执行");
            return "goods";
        }
    }

    这就是一个后端控制器了,这里需要说明两点:

      ① 此时的后端控制器并没有作用,因为我们没有配置注解相关的信息,注解是失效的,在后面我们会配置。

      ② return语句会跳转到相应的页面,如 return "hello"; 这句的作用是跳转到名为hello的页面,此时也是失效的,因为我们还没有配置视图解析器,下面我们会配置一下。

      既然要跳转页面,我们当然需要写一下相应的页面。

      在webapp目录创建两个文件:hello.jsp 和 goods.jsp。

    hello.jsp 内容如下:

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>hello</title>
    </head>
    <body>
        道友好!
    </body>
    </html>

    goods.jsp 内容如下:

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>goods</title>
    </head>
    <body>
        商品页面
    </body>
    </html>

     


    Spring MVC配置文件

      mvc.xml是Spring MVC项目的配置文件,我们要先创建mvc.xml,然后在里面配置我们的注解扫描、注解驱动、视图解析器等配置信息。

    mvc.xml配置如下:

    <beans     xmlns="http://www.springframework.org/schema/beans"
              xmlns:context="http://www.springframework.org/schema/context"
              xmlns:mvc="http://www.springframework.org/schema/mvc"
              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/context
                                http://www.springframework.org/schema/context/spring-context.xsd
                                http://www.springframework.org/schema/mvc
                                http://www.springframework.org/schema/mvc/spring-mvc.xsd">
    
        <!--注解扫描-->
        <context:component-scan base-package="com.ss.web"/>
    
        <!--注解驱动-->
        <mvc:annotation-driven></mvc:annotation-driven>
    
        <!--视图解析器-->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <!--前缀-->
            <property name="prefix" value="/"></property>
            <!--后缀-->
            <property name="suffix" value=".jsp"></property>
        </bean>
    
    </beans>

      此时,我们的后端控制器才正式生效,因为我们配置了注解扫描和注解驱动,注解才会有效;配置了视图管理器,才能把return语句返回的字符串拼接成一个页面的url,进一步完成跳转的功能。 


    注册mvc.xml

      我们写好Spring MVC配置文件后,还需去加载它。还记得前端控制器的作用吗?有一个作用就是加载mvc.xml配置文件,启动Spring MVC工厂,我们在上面并没有配置它,接下来我们配置一下:

      我们要在前端控制器内注册我们的mvc.xml配置文件,配置如下:

    <!--Spring MVC的前端(核心)控制器-->
    <servlet>
        <servlet-name>mvc.ss</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    
        <!--启动SpringMVC工厂,加载mvc.xml-->
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:mvc.xml</param-value>
        </init-param>
    
        <!--可选配置-->
        <!--servlet默认是懒汉式加载的,此配置设置其为饿汉式加载-->
        <load-on-startup>1</load-on-startup>
    
    </servlet>

      配置好后,项目启动后,前端控制器启动后就会加载我们的mvc.xml配置文件了。


    配置tomcat

      接下来,我们要配置我们的web服务器了,步骤如下:

      好了,到此为止,tomcat配置完成。


    启动项目、测试

      我们项目已经搭建完毕了,我们来测试一下吧。

      启动项目,然后在浏览器访问一下:

      回车后结果如下,成功访问:

      再测试一下另一个,输入:

      结果如下,也是成功访问:

      好了,一个简单的Spring MVC项目搭建完毕,如果有时间的话,我会继续深入的来完善这个Spring MVC项目,增加一下其他功能,如参数传递、json处理、拦截器、异常捕获器、验证码等,和大家分享一下学习的过程。

      感谢道友的阅读,如有不足之处,还望不吝赐教!☺

  • 相关阅读:
    codeforce1214E Petya and Construction Set
    codeforces1214D Treasure Island
    CCPC2019网络赛1002 array (主席树)
    POJ2442
    计算机网络-应用层(3)Email应用
    计算机网络-应用层(2)FTP协议
    计算机网络-应用层(1)Web应用与HTTP协议
    算法-排序(1)k路平衡归并与败者树
    算法-搜索(6)B树
    RSA加密算法和SSH远程连接服务器
  • 原文地址:https://www.cnblogs.com/ruoli-0/p/14020252.html
Copyright © 2011-2022 走看看