zoukankan      html  css  js  c++  java
  • SpringMVC高级

    首先先完成SpringMVC基础配置,详细见https://www.cnblogs.com/maomaodesu/p/12268886.html

    文件下载

    web中的文件下载,两个头一个流:Content-Type,Content-Disposition,文件的输入流和respones的输出流对接

    文件上传(以单个文件为例,多文件上传同理)

    SpringMVC集成了FileUpload组件,可以用于文件上传

    文件上传前台的条件

    提交方式必须是post

    表单form中必须有文件项,表单项type="file"

    表单form的enctype属性是多部分表单格式,即enctype="multipart/form-data"

    多部分的表单格式:

    把表单根据某个随机生成的分隔符分割为多个部分。这些部分,有的是普通表单项-->key value的字符串键值对,有的是文件项(就是我们上传的文件,文件项中内容更多,包含文件名、文件长度、文件类型、文件内容...)

    文件上传原理:

    文件上传后台接收数据的操作

    引入FileUpload的依赖

    配置文件上传时的多部分表单的解析器

    UserController类:uploadMethod函数的参数位置用MultipartFile类型接收,其他普通项(如String)与以前接收方式一致。文件项MultipartFile对象内部封装了提交的文件的信息

    结果:

    空文件夹dataStore就有了文件

    打印结果:

    实际开发的时候,我们通过ServletContext对象可以获取服务器中的某个目录的绝对路径。

    拦截器

    拦截器的作用

    SpringMVC拦截器interceptor和filter的区别

    类比web中的过滤器Filter理解,它们的功能类似。

    实现拦截器:

    Controller类:

    编写拦截器类实现HandlerInterceptor接口


    在springmvc的配置文件中进行配置(配置拦截的路径,一般配置为Controller的方法 例如:/user/**)

    执行流程

    preHandle方法,拦截器执行的第一个方法,返回值决定了是否放行。

    当preHandle方法放行时,目标资源执行,执行后,返回ModelAndView。然后到达postHandle方法中。在此处并没有真正渲染视图或返回响应,意味着此处可以修改视图名称或modle中的数据。

    postHandle执行完成之后,才会去渲染视图,返回响应。

    当所有步骤执行完成后,执行afterCompletion方法。

    三个interceptor是如何执行的?


    异常处理器

    异常处理思路:

    异常处理的原则:

    编码时,尽量减少异常的产生

    明确知道某些异常是具有提示作用的,可以自行捕获处理(获取参数并查找,当参数错误时查找不到结果会抛出异常来作为提示)

    其他的一些异常,无法预知的或者需要通用处理的(错误),这些异常我们使用统一的异常处理器来处理。

    简单异常映射处理器SimpleMappingExceptionResolver:

    只能做错误页面跳转,不灵活

    自定义异常处理器HandlerExceptionResolver:

    写一个类实现HandlerExceptionResolver接口,实现其中的resolveException方法处理异常

    把异常处理器交给springmvc框架管理,把自己写的类配置到springmvc的容器中即可,后续所有未捕获的异常会交由springmvc的异常处理器进行处理

  • 相关阅读:
    js 页面按钮提交后 创建显示loading div 操作完成后 再隐藏或删除 进度div
    [转]利用vertical-align:middle实现在整个页面居中
    IP地址查询
    [转]js 判断js函数、变量是否存在
    [转]RDLC报表格式化format表达式
    [转]不用安装Oracle Client如何使用PLSQL Developer
    [转]使用 YCombo 做 JS /CSS开发 合并 压缩
    [转]jQuery为控件添加水印文字
    [转]DataTable用中使用Compute 实现简单的DataTable数据的统计
    [转]Web性能监控自动化探索之路–初识WebPageTest
  • 原文地址:https://www.cnblogs.com/maomaodesu/p/12300769.html
Copyright © 2011-2022 走看看