代码地址

spring_mvc_simple_demo

需求

客服端发起请求,服务端接收请求,执行逻辑并进行视图跳转。

开发步骤

1.导入SpringMVC相关坐标

位置:spring_mvc/pom.xml

		<!--Spring坐标-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.0.5.RELEASE</version>
        </dependency>
        <!--SpringMVC坐标-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.0.5.RELEASE</version>
        </dependency>
        <!--Servlet坐标-->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.0.1</version>
            <scope>provided</scope>
        </dependency>
        <!--Jsp坐标-->
        <dependency>
            <groupId>javax.servlet.jsp</groupId>
            <artifactId>javax.servlet.jsp-api</artifactId>
            <version>2.2.1</version>
            <scope>provided</scope>
        </dependency>

2.配置SpringMVC核心控制器DispathcerServlet

位置:spring_mvc/src/main/webapp/WEB-INF/web.xml

    <!--配置SpringMVC前端控制器-->
    <servlet>
        <servlet-name>DispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <!--关联到spring-mvc.xml上-->
            <param-value>classpath:spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>DispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

3.创建Controller类和视图页面

Controller类位置:
在这里插入图片描述

import org.springframework.stereotype.Controller;

@Controller
public class UserController {

    public String save(){
        System.out.println("Controller save running....");
        return "success";
    }
}

PS:为什么要 return "success"?
实际上,success是下面这个jsp的名字,我们要返回的是success.jsp中的内容。

创建视图界面:
在这里插入图片描述

4.使用注解配置Controller类中业务方法的映射地址

Controller类中加上RequestMapping("/quick")
解释:一般tomcat启动一般访问的路径是 http://localhost:8080/,加上RequestMapping("/quick")以后,访问http://localhost:8080/quick就会得到success.jsp的内容

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

@Controller
public class UserController {

    @RequestMapping("/quick")
    public String save(){
        System.out.println("Controller save running....");
        return "success";
    }
}

5.配置SpringMVC核心文件spring-mvc.xml

位置:
在这里插入图片描述
这里的spring-mvc.xml,其实就是第2步中的 classpath:spring-mvc.xml

6.客户端发起请求测试(tomcat)

6.1 安装tomcat

可以搜一下教程,网上很多

6.2 在IDEA中配置 tomcat**

1. add Configuration

在这里插入图片描述

2. 增加Tomcat server Local

在这里插入图片描述

3. 配置 Application server

在这里插入图片描述

4. 配置端口

此处默认填了8080,如果要修改的话,这两处都要修改。
在这里插入图片描述

5. 配置artifacts

配置页面提示,Warning: No artifacts marked for deployment,是因为我们还没有将此项目打包
在这里插入图片描述

6. 打包此项目

打包的时候,需要注意将此项目打包成war包,而不是jar包,所以要在pom.xml中增加一行
<packaging>war</packaging>
在这里插入图片描述

然后执行打包,如果安装了Maven Helper 插件,可以在右侧先点击clean, 然后点击package
在这里插入图片描述
如果没有安装该插件,也可以直接在spring_mvc这个项目的路径下执行 maven clean package
在这里插入图片描述
输出信息的最后,有这个war包的路径
在这里插入图片描述

7. 重新配置 artifacts

点击 Fix,会出现两种artifact,为了方便本地继续开发调试,所以我们选择两种模式的区别如下:
1)war模式这种可以称之为是发布模式,看名字也知道,这是先打成war包,再发布;
2)war exploded模式是直接把文件夹、jsp页面 、classes等等移到Tomcat 部署文件夹里面,进行加载部署。因此这种方式支持热部署,一般在开发的时候也是用这种方式。
在这里插入图片描述

下面的Application context,会自动添加到http://localhost:8080/的后面
在这里插入图片描述
在这里插入图片描述

8.启动tomcat

这两个图标都可以启动tomcat
在这里插入图片描述
启动后,自动打开的是index.jsp页面
在这里插入图片描述

在这里插入图片描述

输入controller类中配置的路径 /quick,会打开 success.jsp的页面
在这里插入图片描述

参考资料

黑马程序员最全SSM框架教程|Spring+SpringMVC+MyBatis全套教程(spring+springmvc+mybatis) P41~44

Tomcat部署时war和war exploded区别以及平时踩得坑
Idea2017部署项目到tomcat时增加Artifacts的步骤

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐