Skip to content

一、简介

一、SpringMVC概述

概述

SpringMVC是一种基于Java 的实现MVC 设计模型的请求驱动类型的轻量级 Web 框架,属于SpringFrameWork的后续产品,已经融合在SpringWebFlow中。

SpringMVC已经成为目前最主流的MVC框架之一,并且随着Spring3.0的发布,全面超越Struts2,成为最优秀的 MVC 框架。它通过一套注解,让一个简单的Java 类成为处理请求的控制器,而无须实现任何接口。同时它还支持 RESTfuI编程风格的请求。

二、SpringMVC快速入门

步骤

  1. 导入SpringMVC相关坐标
  2. 配置SpringMVC核心控制器DispathcerServlet
  3. 创建Controller类和视图页面
  4. 使用注解配置Controller类中业务方法的映射地址
  5. 配置SpringMVC核心文件spring-mvc.xml
  6. 客户端发起请求测试

1、导入spring-webmvc坐标

提示

所有spring-xxx的坐标,版本尽可能一致

xml
<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-context</artifactId>
  <version>5.3.30</version>
</dependency>

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-web</artifactId>
  <version>5.3.30</version>
</dependency>

<dependency>
  <groupId>org.springframework</groupId>
  <artifactId>spring-webmvc</artifactId>
  <version>5.3.30</version>
</dependency>

2、创建controller

java
@Controller
public class UserController {
    @RequestMapping("/quick")
    public String save() {
        System.out.println("asasa");
        return "user.jsp";
    }
}

3、xml文件进行扫描

xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       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/context http://www.springframework.org/schema/context/spring-context.xsd
">


    <context:component-scan base-package="com.hdq.controller"/>

</beans>

4、使用spring-mvc.xml

提示

注意标签顺序,顺序不符合规定会出错

xml
<!DOCTYPE web-app PUBLIC
        "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
        "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
    <servlet>
        <servlet-name>DispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <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>
</web-app>

三、项目结构

提示

GPT给出的参考,仅供参考

bash
├── pom.xml //maven的配置文件
└── src
    ├── main
   ├── java //java代码的目录
   │   └── mygroup
   │       ├── controller
   │       │   ├── HomeController.java
   │       │   └── PersonController.java
   │       ├── dao
   │       │   └── PersonDao.java
   │       └── model
   │           └── Person.java
   ├── resources //静态资源目录
   │   ├── db.properties
   │   ├── log4j.xml
   │   └── META-INF
   │       └── persistence.xml
   └── webapp //web应用部署根目录
       ├── index.html //因为是静态html文件,不用放到WEB-INF目录下
       ├── META-INF
       │   ├── context.xml
       │   └── MANIFEST.MF
       ├── resources //css,js等静态资源是不能放到WEB-INF目录下的,因为WEB-INF下的资源,客户端无法直接访问
       │   └── css
       │       └── screen.css
       └── WEB-INF //jsp都会放到这里,以保证用户无法直接访问jsp,而是通过controller这个目录下的所有内容客户端都无法直接访问,所以不要放静态文件
           ├── spring
           │   ├── app
           │   │   ├── controllers.xml
           │   │   └── servlet-context.xml
           │   ├── db.xml
           │   └── root-context.xml
           ├── views
           │   ├── edit.jsp
           │   ├── home.jsp
           │   └── list.jsp
           └── web.xml
    └── test
        ├── java
   └── mygroup
       ├── controller
       │   ├── DataInitializer.java
       │   ├── HomeControllerTest.java
       │   └── PersonControllerTest.java
       └── dao
           └── PersonDaoTest.java
        └── resources
            ├── db.properties
            ├── log4j.xml
            ├── test-context.xml
            └── test-db.xml