SpringMVC高级

文件下载

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

文件上传

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

文件上传前台的条件

提交方式必须是post

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

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

多部分的表单格式:

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

文件上传原理:

    文件上传后台接收数据的操作
        1. 引入FileUpload的依赖
        2. 配置文件上传时的多部分表单的解析器
            <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
                <property name="defaultEncoding" value="UTF-8"/>
                <property name="maxUploadSize" value="500000"/>
            </bean>
        3. 在Controller的方法上,参数位置。普通项和之前的接收方式一致。文件项用MultipartFile类型接收即可。
            MultipartFile对象内部封装了提交的文件的信息
            通过ServletContext对象可以获取服务器中的某个目录的绝对路径

拦截器

    类比web中的过滤器Filter理解,它们的功能类似。
    编写的流程
        1. 编写一个类实现HandlerInterceptor接口
        2. 在springmvc的配置文件中进行配置
            配置拦截的路径,一般配置为Controller的方法
                例如:/user/**
    执行流程
        1. preHandle方法,拦截器执行的第一个方法,返回值决定了是否放行。
        2. 当preHandle方法放行时,目标资源执行,执行后,返回ModelAndView。
            然后到达postHandle方法中。在此处并没有真正渲染视图或返回响应,意味着此处可以修改视图名称或modle中的数据。
        3. postHandle执行完成之后,才会去渲染视图,返回响应。
        4. 当所有步骤执行完成后,执行afterCompletion方法。

异常处理器

    定义全局处理异常的组件。
    异常处理的原则:
        1. 编码时,尽量减少异常的产生
        2. 明确知道某些异常是具有提示作用的,可以自行捕获处理
        3. 其他的一些异常,无法预知的或者需要通用处理的,这些异常我们使用统一的异常处理器来处理。
    自定义异常处理器的流程
        1. 写一个类实现HandlerExceptionResolver接口,实现其中的resolveException方法处理异常
        2. 把异常处理器交给springmvc框架管理,把自己写的类配置到springmvc的容器中即可
            后续所有未捕获的异常会交由springmvc的异常处理器进行处理
    异常处理器作用
        1. 帮助我们记录异常信息,以便于后期维护修复错误使用
        2. 可以跳转一个友好的错误页面,提升用户体验。

猜你喜欢

转载自www.cnblogs.com/maomaodesu/p/12300769.html