SpringMVC简介
  • 开发步骤

    1.导入SpringMVC包
    2.配置Servlet
    3.编写POJO(控制器Controller)
    4.将Controller使用注解配置到Spring容器中
    5.配置组件扫描 spring-mvc.xml
    6.执行测试
    
    • 导入坐标

      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-webmvc</artifactId>
          <version>5.3.20</version>
      </dependency>
      
    • 配置SpringMVC的前端控制器

      webapp.WEB-INF.web.xml

      <servlet>
          <servlet-name>DispatcherServlet</servlet-name>
          <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
          <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
          <servlet-name>DispatcherServlet</servlet-name>
          <url-parttern>/</url-parttern>
      </servlet-mapping>
      
    • 编写Controller

      controller.UserController

      @Controller
      public class UserController {
      
          @RequestMapping("/quickstart")
          public String save {
              System.out.println("save")
              return "/success.jsp";
          }
      }
      
    • 配置spring-mvc 组件扫描

      spring-mvc.xml

      <!-- TODO 补一个context命名空间 -->
      <context:component-scan base-package="com.miaokela.controller"/>
      
    • 告诉Servlet 配置文件的位置

      webapp.WEB-INF.web.xml

      <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-parttern>/</url-parttern>
      </servlet-mapping>
      
    • 测试

  • 组件解析

    Browser 请求 -> DispatcherServlet 前端控制器 -> 请求查询Handler -> HandlerMapping 查询映射器
    -> 返回HandlerExcutionChain -> 请求执行Handler -> HandlerAdaptor 处理适配器 -> Handler 处理器 
    -> 返回ModelAndView -> 请求视图解析器 -> ViewResolver 视图解析器 -> 返回视图对象 —> 返回视图页面jsp
    
    • 注解解析

      • @RequestMapping

        建立url与请求方法之间的对应关系

        // 地址 方法 参数
        @RequestMapping(value="/quick", method=RequestMethod.POST, params={"username"})
        
    • 组件扫描

      只扫描Controller

      <context:component-scan base-package="com.miaokela">
          <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
      </context:component-scan>
      
  • spring-mvc文件配置

    配置内部资源视图解析器
    配置前缀路径 后缀名

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/jsp/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>
    
posted on 2022-09-20 04:05  _tiny_coder  阅读(43)  评论(0编辑  收藏  举报