0
点赞
收藏
分享

微信扫一扫

1. SpringMVC简介

Java架构领域 2022-04-13 阅读 83

目录

1.1 SpringMVC概述

1.2 SpringMVC快速入门

1.3 SpringMVC流程图示 

1.4 SpringMVC的执行流程 

1.5 SpringMVC组件解析

1.6 SpringMVC注解解析

1.7 SpringMVC的XML配置解析 

1.8 知识要点


1.1 SpringMVC概述

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

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

1.2 SpringMVC快速入门

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

开发步骤:

导入Spring和SpringMVC的坐标:

<!--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和Jsp的坐标:

<!--Servlet坐标-->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
</dependency>

<!--Jsp坐标-->
<dependency>
    <groupId>javax.servlet.jsp</groupId>
    <artifactId>jsp-api</artifactId>
    <version>2.0</version>
</dependency>

在web.xml配置SpringMVC的核心控制器:

<servlet>
    <servlet-name>DispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- 加载SpringMVC配置文件 -->
    <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>

创建Controller和业务方法:

public class QuickController {
    public String quickMethod(){
        System.out.println("quickMethod running.....");
        return "index";
    }
}

创建视图页面index.jsp:

<html>
    <body>
        <h2>Hello SpringMVC!</h2>
    </body>
</html>

配置注解:

@Controller
public class QuickController {
    @RequestMapping("/quick")
    public String quickMethod(){
        System.out.println("quickMethod running.....");
        //返回index.jsp视图
        return "index";
    }
}

创建spring-mvc.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.itheima"/>
</beans>

访问测试地址:

控制台打印:

页面显示 :

1.3 SpringMVC流程图示 

1.4 SpringMVC的执行流程 

1.5 SpringMVC组件解析

1. 前端控制器:DispatcherServlet

2. 处理器映射器:HandlerMapping

3. 处理器适配器:HandlerAdapter

4. 处理器:Handler

5. 视图解析器:ViewResolver

6. 视图:View

1.6 SpringMVC注解解析

1)@RequestMapping

作用:用于建立请求 URL 和处理请求方法之间的对应关系

位置:

  • 类上,请求URL 的第一级访问目录。此处不写的话,就相当于应用的根目录
  • 方法上,请求 URL 的第二级访问目录,与类上的使用@ReqquestMapping标注的一级目录一起组成访问虚拟路径

属性:

  • value:用于指定请求的URL。它和path属性的作用是一样的
  • method:用于指定请求的方式
  • params:用于指定限制请求参数的条件。它支持简单的表达式。要求请求参数的key和value必须和配置的一模一样

例如:

  • params = {"accountName"},表示请求参数必须有accountName
  • params = {"moeny!100"},表示请求参数中money不能是100

2)组件扫描

1. mvc命名空间引入

2. 组件扫描

SpringMVC基于Spring容器,所以在进行SpringMVC操作时,需要将Controller存储到Spring容器中,如果使 用@Controller注解标注的话,就需要进行组件扫描。 

<context:component-scan basepackage=“com.itheima.controller"/>

1.7 SpringMVC的XML配置解析 

1)视图解析器

SpringMVC有默认组件配置,默认组件都是DispatcherServlet.properties配置文件中配置的,该配置文件地址 org/springframework/web/servlet/DispatcherServlet.properties,该文件中配置了默认的视图解析器,如下:

翻看该解析器源码,可以看到该解析器的默认设置,如下:

我们可以通过属性注入的方式修改视图的的前后缀:

<!--配置内部资源视图解析器-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    <property name="prefix" value="/WEB-INF/views/"></property>
    <property name="suffix" value=".jsp"></property>
</bean>

1.8 知识要点

 

举报

相关推荐

0 条评论