SpringMVC的初始配置(XML)与使用

SpringMVC简介

Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。是一款面向web层的基于java实现MVC模型的轻量级web框架。

SpringMVC的优点

  • 使用简单
  • 性能突出
  • 灵活性强
  • 很好的与Spring框架整合。

三层架构

  1. M:数据模型层
  2. V:视图层
  3. C:控制层

使用XML方法配置SpringMVC

  1. 配置步骤

    • 使用Maven构建web项目
    • 配置web.xml文件,在文件中配置由Spring提供的DispatcherServlet分发器,过滤器,并且加载Spring的配置文件
    • 编写Spring的配置文件。
    • 使用@Controller@ReuqestMapper
  2. 具体配置

    • 配置依赖,完成项目的构建

      pom.xml

      <dependencies>
      	<!-- servlet -->
      	<dependency>
      		<groupId>javax.servlet</groupId>
      		<artifactId>javax.servlet-api</artifactId>
      		<version>3.1.0</version>
      		<scope>provided</scope>
      	</dependency>
      	<!--jsp-->
      	<dependency>
      		<groupId>javax.servlet.jsp</groupId>
      		<artifactId>jsp-api</artifactId>
      		<version>2.1</version>
      		<scope>provided</scope>
      	</dependency>
      	<!--spring-->
      	<dependency>
      		<groupId>org.springframework</groupId>
      		<artifactId>spring-context</artifactId>
      		<version>5.1.9.RELEASE</version>
      	</dependency>
      	<!--spring web-->
      	<dependency>
      		<groupId>org.springframework</groupId>
      		<artifactId>spring-web</artifactId>
      		<version>5.1.9.RELEASE</version>
      	</dependency>
      	<!--spring-mvc-->
      	<dependency>
      		<groupId>org.springframework</groupId>
      		<artifactId>spring-webmvc</artifactId>
      		<version>5.1.9.RELEASE</version>
      	</dependency>
      </dependencies>
      
    • 配置web.xml文件

      <?xml version="1.0" encoding="UTF-8"?>
      <web-app xmlns="http://java.sun.com/xml/ns/javaee"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
      		  http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
               version="3.0">
      
          <!--配置servlet-->
          <servlet>
              <!--指定servlet的名字,一个文件中,servlet的名字不能重复-->
              <servlet-name>DispatcherServlet</servlet-name>
              
              <!--配置由spring提供的简介实现了HttpServlet接口的类-->
              <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>
          </servlet>
      
          <!--配置servlet的映射路径-->
          <servlet-mapping>
              <servlet-name>DispatcherServlet</servlet-name>
              <url-pattern>/</url-pattern>
          </servlet-mapping>
      
      
          <!--配置过滤器解决中文乱码问题-->
          <filter>
              <filter-name>CharacterEncodingFilter</filter-name>
              <!--过滤器的全限定类名-->
              <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
              <!--设置字符编码-->
              <init-param>
                  <param-name>encoding</param-name>
                  <param-value>UTF-8</param-value>
              </init-param>
          </filter>
      
          <!--设置拦截的映射路径-->
          <filter-mapping>
              <filter-name>CharacterEncodingFilter</filter-name>
              <url-pattern>/*</url-pattern>
          </filter-mapping>
      </web-app>
      
      
    • 编写Spring配置文件

      <?xml version="1.0" encoding="UTF-8"?>
      <beans xmlns="http://www.springframework.org/schema/beans"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:context="http://www.springframework.org/schema/context"
             xmlns:mvc="http://www.springframework.org/schema/mvc"
             xsi:schemaLocation="http://www.springframework.org/schema/beans
             http://www.springframework.org/schema/beans/spring-beans.xsd 
      	   http://www.springframework.org/schema/context 
      	   https://www.springframework.org/schema/context/spring-context.xsd 
      	   http://www.springframework.org/schema/mvc 
      	   https://www.springframework.org/schema/mvc/spring-mvc.xsd">
      
          <!--配置组件扫描器-->
          <context:component-scan base-package="com.itheima"/>
      
          <!--启用spring-mvc注解驱动-->
          <mvc:annotation-driven/>
      	
      	<!--配置默认servlet处理器,过滤静态资源不处理-->
          <mvc:default-servlet-handler/>
      
      </beans>
      
    • 使用

      /**
       * 将此类配置到Spring容器
       */
      @Controller
      public class Demo {
      
          /**
           * @RequestMapping:配置请求路径
           *
           * @return:返回的字符串就是要请求的页面地址
           */
          @RequestMapping("/success")
          public String demo01() {
              return "/WEB-INF/page/success.jsp";
          }
      }
      

使用注解解释

  1. @Controller:Spirng的注解,表示将此类交由Spring容器管理。

  2. @RequestMapping:是用来处理游览器发出的请求地址映射的注解,当游览器发出请求,SpinrgMVC会根据请求的地址,去寻找@RequestMapping注解中设定的映射地址,并执行匹配注解所作用的方法。

  3. 服务器启动,创建Spring容器的流程

    • 当服务器启动的时候会加载web.xml配置文件。

    • 加载web.xml时,会读取到Spring配置文件,就会创建Spirng容器

    • 在Spring配置文件中,根据配置的组件扫描<context:component-scan base-package="com.itheima"/>扫描对应的包。

    • 读取包中所有标记为bean的类,加载为bean到Spring容器中管理。

    • 读取bean中方法上标注@RequestMapping注解的内容

  4. 获取请求,处理请求的流程。

    • 当客户端发起请求时,会被DispatcherServlet配置拦截所有的请求
    • 将拦截到的请求路径与所有加载的@RequestMapper注解中配置的请求路径比较。
    • 找到相匹配的路径时,执行注解对应的方法。
    • 根据方法的返回值,在webapp目录中查找对应的页面,并展示。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值