Spring MVC

Spring MVC

  • 为什么要学Spring MVC

  • 解决mvc层的问题 就是做相应的

  • MVC的是可以和其他的技术集成技术进行结合

  • 其他的MVC框框

    • Struts1 --> WebWork --> Struts2
    • Spring MVC
    • JSF
  • 前端控制器
    • 集中处理请求
      • 可以把集中重复的事情在这里做
      • 处理编码 启动Spring容器 就都走到这里来 这里就是前端控制器
      • spring mvc 是用 servlet来实现的 /*

在这里插入图片描述

  • mvc注解解析器

    • <!-- MVC 注解解析器 
      	经常使用的注解
          @RequestBody
          @ReponseBody
          @ExceptioHandler
      -->
      <mvc:annotation-driven/>
      

Tomcat内置Servlet对象

  • DefaulServlet

    • /
  • JSPServlet

  • 我们自己创建的

    • /
  • 如果内置的访问路径和我们的路径相等的时候,先访问我们的内置静态的文件被覆盖掉

  • 前端控制器路径的配置

在这里插入图片描述

处理响应
  • 转发和重定向

    在这里插入图片描述

    在这里插入图片描述

    • 不是找视图所以 不能用视图解析器的后缀
处理简单类型的请求参数
  • 数组类型的

过滤器和拦截器的区别

Tomcat启动会解析 web.xml
  • 把里面配置的Servlet Filter Listtener 对象都创建存起来

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Tl5pN74E-1603424586899)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20201022223012656.png)]

用到的类对象

在这里插入图片描述

  • 对象.addAttribute("后面值的名	字","传的值")
    
用到的注解和其功能
  • @Controller Controller只是定义了一个控制器类

  • @RequestMapping注解的方法才是处理请求的处理器。

    • equestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径
    • 也可以贴在方法上面
  • MVC的类可以直接在传参数里面传值和定义不用再进行非空判断

  • 可以传数组date类型和其他的自定义类型等

  • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gWHhdPYG-1603424586907)(D:\学习文件夹\培训预习和复习文件\课后总培\第三阶段\day08\img\image-20201023104547230.png)]

  • 传入自定义类型

在这里插入图片描述

  • 可以直接从

    • lei.获取值的名字获取数据

      • pic.getContentType()
        
mvc.xml的代码应用
  • <!-- 配置 IoC DI 注解解析器,让 Spring 我们创建 HelloController 类的对象 -->
    <context:component-scan base-package="com.cen.web.controller"/>
    
    • component-scan : 扫描器

    • base-package : 包的路径

  • <mvc:annotation-driven/>
    
    • <!-- MVC 注解解析器
          @RequestBody
          @ReposeBody
          @ExceptioHandler
      -->
      
  • <!--视图解析器
    把逻辑视图解析成物理视图
    String - File
    就是把String类型的路径转成物理类型的视图
    -->
    
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/"/>
        <property name="suffix" value=".jsp"/>
     </bean>
    
    • InternalResourceViewResolver:
      • 内部资源视图解析器
      • class的类就是这个
    静态资源转发
  •  <!--
     如果路劲处理不了静态资源  就交由静态资源器来处理来处理
    *.do 可以不配置这个
     <mvc:default-servlet-handler/>-->
    
配置上传解析器
  • <!--配置上传解析器-->
    <bean id="multipartResolver" class="org.springframework.web.multipart.support.StandardServletMultipartResolver"/>
    
    • StandardServletMultipartResolver
      • 标准Servlet多部分解析器
拦截器
  • <!--配置拦截器-->
    <mvc:interceptors>
        <mvc:interceptor>
            <mvc:mapping path="/**"/>
            <bean class="com.cen.web.interceptor.MyInterceptor"/>
        </mvc:interceptor>
    </mvc:interceptors>
    

在这里插入图片描述

web.xml的代码分析
  • 配置 Spring MVC 前端控制器

    • Spring MVC 前端控制器

    • <servlet-name>dispatcherServlet</servlet-name>
      <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
      
    • DispatcherServlet: 分派器

    • <!-- 指定 Spring 容器启动加载的配置文件-->
      <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:mvc.xml</param-value>
      </init-param>
      
    • 指定mvc.xml文件的位置

  • <!-- Tomcat 启动初始化 -->
    <load-on-startup>1</load-on-startup>
    
    • load-on-startup:
      • 元素标记容器是否应该在启动的时候加载这个servlet,(实例化并调用其init()方法)
  • 上传文件大小的限制:

    • <multipart-config>
          <max-file-size>52428800</max-file-size>
          <max-request-size>52428800</max-request-size>
      </multipart-config>
      
  • 访问的时候带上后缀

    •  <servlet-mapping>
              <servlet-name>dispatcherServlet</servlet-name>
              <!--路径资源都要带.do结尾-->
              <url-pattern>*.do</url-pattern>
      <!--        <url-pattern>/</url-pattern>-->
          </servlet-mapping>
      
    <servlet-mapping>
           <servlet-name>dispatcherServlet</servlet-name>
           <!--路径资源都要带.do结尾-->
           <url-pattern>*.do</url-pattern>
   <!--        <url-pattern>/</url-pattern>-->
       </servlet-mapping>
   ```

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值