zoukankan      html  css  js  c++  java
  • spring-mvc-继续学习

    生命周期:
    springmvc提供了,request,session两个生命周期

    @Scope("session")

    表示每一个session创建一个对象。

    @Scope(“request”)

    表示每一个请求创建一个对象

    spring默认对象是单例的,单例对象含有成员属性时会相互影响。

    由于部分后面新增的功能只支持注解,所以使用这部分功能时需要使用<mvc:annotation-driven>启动注解,不然会失效。

    文件上传:

    SpringMVC支持文件上传组件。commons-fileupload组件,commons-fileupload依赖commons-io组件。

    配置步骤:

    第一步:导入包 commons-fileuplad组件
    第二步:配置springmvc支持上传组件
    (1)启动SpringMVC注解支持
    (2)配置上传解释器 (对象名必须是固定)

     

    第三步:构建一个上传表单
    第四步:在业务控制器编写保存上传文件的逻辑

     

    注意,因为核心控制器对上传解释器的名字是固定的.是multipartResolver,所以我们配置上传解释器,名字必须是multipartResolver

    文件下载:

    所谓的文件下载就是将文件写入到HttpServletResponse里面

    拦截器:

    拦截器与过滤的区别?(回顾)

    1. 过滤器拦截的是请求路径
    2. 拦截器拦截的是表示层方法的映射路径
    3. 既然拦截器与Servlet的过滤器功能基本一样,为什么需要使用拦截器呢
      如果使用过滤器SpringMVC的一些功能组件就无法使用。而拦截器是SpringMVC的功能,可以使用SpringMVC里面的一些组件!!

    拦截器配置

    静态资源设置:

    SpringMVC的DispatcherServlet是不可以/*拦截请求的,否则会将JSP都拦截了,但有时候我们的请求路径不能有后缀(如:Restful风格的接口需要)。如何实现

    /表示拦截所有的静态资源(html,css....)以及请求,除了动态页面(jsp)的其他所有东西

    /*表示拦截所有的东西,包含动态页面和静态资源.

    SpringMVC支持<url-pattern>/</url-pattern>的这种配置.但是如果这个路径是/,意味着,所有的静态资源都不能访问。

     

    为什么不能访问,因为SpringMVC拦截了又不处理,所以导致无法访问!!!

    配置放开静态资源即可

    <mvc:default-servlet-handler/>:开放所有的静态资源访问

    JSON支持:

    所谓的对JSON的支持,就是SpringMVC支持自动将JSON对象转换成JAVA对象,也支持将Java对象自动转成JSON.

    SpringMVC本身没有对JSON数据处理的类库.要支持JSON的自动转换必须导入JSON的支持包

    请求发送一个JSON的对象给执行方法,执行方法根据@RequestBody这个注解强制将请求发送过来的JSON转换成Java对象

     

    注意事项:表单请求默认是不支持PUT,DELETE 请求的。
    所谓的表单请求就是enctype是enctype="application/x-www-form-urlencoded"
    的请求.除了表单请求,其他的请求格式都是支持PUT,DELETE。

    Spring Web有提供将POST转PUT和DELETE的解放方案来解决表单请求不支持PUT和DELETE的类型解决方法。
    通过过滤器:org.springframework.web.filter.HiddenHttpMethodFilter支持。

    作用:

    目的是为了,远程接口可以访问这些方法,也可以让本地的表单请求也可以访问这些方法。

    如果配置了PUT与DELETE就让本地的表单不可以访问,本来这种设计就是有缺陷!!

  • 相关阅读:
    supermall遇到的问题
    github建立仓库
    【Teradata】9794 ERRAMPOUTOFPHYSPACE error解决方法
    MPP大规模并行计算数据库与分布式数据库的区别
    【English】20190515
    商业数据分析的四个层次
    学会学习(Learning how to learn)
    【English】20190513
    【Teradata】DEL语句产生的锁
    【Teradata】开启LockLogger与dumplocklog工具使用(含lokdisp工具说明)
  • 原文地址:https://www.cnblogs.com/cdeelen/p/10828213.html
Copyright © 2011-2022 走看看