1、入门程序

1、Maven导入坐标

  1. <!-- 版本锁定 -->
  2. <properties>
  3. <spring.version>5.0.2.RELEASE</spring.version>
  4. </properties>
  5. <dependencies>
  6. <dependency>
  7. <groupId>org.springframework</groupId>
  8. <artifactId>spring-context</artifactId>
  9. <version>${spring.version}</version>
  10. </dependency>
  11. <dependency>
  12. <groupId>org.springframework</groupId>
  13. <artifactId>spring-web</artifactId>
  14. <version>${spring.version}</version>
  15. </dependency>
  16. <dependency>
  17. <groupId>org.springframework</groupId>
  18. <artifactId>spring-webmvc</artifactId>
  19. <version>${spring.version}</version>
  20. </dependency>
  21. <dependency>
  22. <groupId>javax.servlet</groupId>
  23. <artifactId>servlet-api</artifactId>
  24. <version>2.5</version>
  25. <scope>provided</scope>
  26. </dependency>
  27. <dependency>
  28. <groupId>javax.servlet.jsp</groupId>
  29. <artifactId>jsp-api</artifactId>
  30. <version>2.0</version>
  31. <scope>provided</scope>
  32. </dependency>
  33. </dependencies>

2、web.xml配置

  1. <web-app>
  2. <display-name>Archetype Created Web Application</display-name>
  3. <servlet>
  4. <servlet-name>dispatcherServlet</servlet-name> <!-- 名字随便起,但是必须要与下方的name一致 -->
  5. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 固定的 -->
  6. </servlet>
  7. <servlet-mapping>
  8. <servlet-name>dispatcherServlet</servlet-name>
  9. <url-pattern>/</url-pattern> <!-- 请求拦截,/表示任何请求都会拦截 -->
  10. </servlet-mapping>
  11. </web-app>

3、创建springmvc配置文件

4、配置服务器(Tomcat)

5、成功

2、配置链接跳转

  1. 在jsp中创建超链接,随后将超链接指向某个请求
  2. 新建controller类,用于指定访问路径
  3. 在controller类添加@Controller 注解,声明本类为一个控制器类
  4. 在方法上添加@RequestMapping 注解,并通过path属性定义访问路径,访问路径为/hello ```java @Controller public class HelloController { @RequestMapping(path = “/hello”) public String sayHello(){
    1. System.out.println("Hello SpringMVC");
    2. return "success";
    }

}

  1. 5. 为了使控制器生效,需要配置springmvc配置文件,用于开启注解扫描,同时在web.xml内的servlet标签添加contextConfigLocation,用于指定springmvc的配置文件,配置结果如下<br />springmvc.xml文件内容
  2. ```xml
  3. <?xml version="1.0" encoding="UTF-8"?>
  4. <beans xmlns="http://www.springframework.org/schema/beans"
  5. xmlns:mvc="http://www.springframework.org/schema/mvc"
  6. xmlns:context="http://www.springframework.org/schema/context"
  7. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  8. xsi:schemaLocation="
  9. http://www.springframework.org/schema/beans
  10. http://www.springframework.org/schema/beans/spring-beans.xsd
  11. http://www.springframework.org/schema/mvc
  12. http://www.springframework.org/schema/mvc/spring-mvc.xsd
  13. http://www.springframework.org/schema/context
  14. http://www.springframework.org/schema/context/spring-context.xsd">
  15. <!-- 开启注解扫描 -->
  16. <context:component-scan base-package="icu.whatsblog"/>
  17. </beans>
  1. web.xml文件内容

    1. <web-app>
    2. <display-name>Archetype Created Web Application</display-name>
    3. <servlet>
    4. <servlet-name>dispatcherServlet</servlet-name> <!-- 名字随便起,但是必须要与下方的name一致 -->
    5. <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <!-- 固定的 -->
    6. <init-param> <!-- 自动加载配置文件 -->
    7. <param-name>contextConfigLocation</param-name>
    8. <param-value>classpath:springmvc.xml</param-value>
    9. </init-param>
    10. <load-on-startup>1</load-on-startup> <!-- 启动服务器就可以创建DispatcherServlet对象, 对象创建后加载springmvc配置文件,加载文件后就可以开启扫描,扫描后类就会生效,之后正常执行-->
    11. </servlet>
    12. <servlet-mapping>
    13. <servlet-name>dispatcherServlet</servlet-name>
    14. <url-pattern>/</url-pattern> <!-- 请求拦截,/表示任何请求都会拦截 -->
    15. </servlet-mapping>
    16. </web-app>
  2. 跳转成功为了匹配到指定页面需要视图解析器,需要在springmvc.xml中配置视图解析器,如下所示

    1. <!--配置视图解析器-->
    2. <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
    3. <property name="prefix" value="/WEB-INF/pages/"/> <!-- jsp文件所在的目录 -->
    4. <property name="suffix" value=".jsp"/> <!-- 文件的后缀名 -->
    5. </bean>
    6. <!-- 开启SpringMVC框架注解的支持 -->
    7. <mvc:annotation-driven/>
  3. 完成

3、入门案例解析:

  1. 入门案例的执行流程
    1. 当启动Tomcat服务器的时候,因为配置了load-on-startup标签,所以会创建DispatcherServlet对象,
      就会加载springmvc.xml配置文件
    2. 开启了注解扫描,那么HelloController对象就会被创建
    3. 从index.jsp发送请求,请求会先到达DispatcherServlet核心控制器,根据配置@RequestMapping注解
      找到执行的具体方法
    4. 根据执行方法的返回值,再根据配置的视图解析器,去指定的目录下查找指定名称的JSP文件
    5. Tomcat服务器渲染页面,做出响应

SpringMVC第一天 - 图1

  1. SpringMVC官方提供图形

SpringMVC第一天 - 图2

4、RequestMapping注解的作用

  1. RequestMapping注解的作用是建立请求URL和处理方法之间的对应关系
  2. RequestMapping注解可以作用在方法和类上
  3. 作用在类上:第一级的访问目录
  4. 作用在方法上:第二级的访问目录
  5. 细节:路径可以不编写 / 表示应用的根目录开始
  6. 细节:${ pageContext.request.contextPath }也可以省略不写,但是路径上不能写 /

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

出现位置:

  • 类上:
    • 请求URL的第一级访问目录。此处不写的话,就相当于应用的根目录。写的话需要以/开头。 它出现的目的是为了使我们的URL可以按照模块化管理:
      • 例如:
        • 账户模块:
          • /account/add
          • /account/update
          • /account/delete

        • 订单模块:
          • /order/add
          • /order/update
          • /order/delete
        • 红色的部分就是把RequsetMappding写在类上,使我们的URL更加精细。
  • 方法上:
    • 请求URL的第二级访问目录。

属性:

  • value:用于指定请求的URL。它和path属性的作用是一样的。
  • method:用于指定请求的方式。
  • params:用于指定限制请求参数的条件。它支持简单的表达式。要求请求参数的key和value必须和配置的一模一样。
    • 例如:
      params = {“accountName”},表示请求参数必须有accountName
      params = {“moeny!100”},表示请求参数中money不能是100
  • headers:用于指定限制请求消息头的条件。
  • 注意: 以上四个属性只要出现2个或以上时,他们的关系是与的关系。