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就让本地的表单不可以访问,本来这种设计就是有缺陷!!

  • 相关阅读:
    vue : 无法加载文件 C:UsersxxxAppDataRoaming pmvue.ps1,因为在此系统上禁止运行脚本
    VSCode搭建简单的Vue前端项目
    Ant Design和Ant Design Pro
    React、Vue、AngularJS、Bootstrap、EasyUI 、AntDesign、Element理解
    CTF-flag在index里 80
    Web安全之XSS漏洞专题和Web安全之命令执行漏洞专题—第五天
    CTF-web4 80
    Sqli-labs-第五关详解
    Web安全之文件上传漏洞专题--第四天.
    Sqli_labs第1-4关&&sqlmap.py的初步使用
  • 原文地址:https://www.cnblogs.com/cdeelen/p/10828213.html
Copyright © 2011-2022 走看看