spring 文件上传

package springmvc;

public class TestOne {

    /**
     * 
     * Springmvc配置的替代方案
     * 处理文件上传
     * 控制器中处理异常
     * 使用flash
     * 
     * 1.springmvc的加载
     * 代码方式创建Servlet filter listener,
     * 实现webapplicationinitializer接口,创建实例并映射到路径上
     * 
     * web.xml中加载servlet
     * 
     * DispatherServlet 和contextLoaderListener
     * 
     * 
     * contextConfigLocation
     * 加载bean到到容器,spring和springmvc分别可以加载一个文件
     * 
     * 
     * 
     * 2.处理multipart形式的数据
     * 文件上传,处理图片等二进制数据,
     * 可以使用multipart格式的数据,会将数据拆分多个部分
     * 
     * 配置multipart解析器
     * 
     * 两种方式:
     * 1)代码方式注册servlet  setMultipartConfig()
     * 2)在web.xml中配置  
     * 
     *  必须指定一个路径,上传的文件将会写入该目录中。
     *  
     *  两种servlet
     *  CommonsMultipartResolver
     *  StandardServletMultiResolver    此种方式能设置文件大小,上限
     *  
     *  3.处理multipart请求
     *  
     * 控制器上添加注解 @RequestPart
     * 表单上 enctype 设置为 multipart/form-data,每个输入域对应一个part
     * 
     * 表单input 新增了一个file类型,只接受jgpe、png、gif图片,
     * 控制器端profilepicture接收,数组接收
     * 
     * public void method(){
     * @RequestPart("profilePicture")  byte[] profilePicture
     * }
     * 
     * 4.MultipartFile 接口处理文件
     * 
     * AWS凭证  保存图片
     * 
     * 5.javax.servlet.http.Part接口
     * 
     *  public void method(){
     * @RequestPart("profilePicture")  Part part
     * }
     * 
     * 
     * 6.异常处理
     * @ResponseStatus
     * 
     * 
     * @ExceptionHandler
     * 7.控制器通知类
     * 
     * 建立一个控制器带@ControllerAdvice,会扫描所有的控制器类
     * 
     * 可以在这个列中定义方法处理所有的异常
     * 
     * @ControllerAdvice      //定义控制器类
     * public Class ControllerAd{
     * 
     * @ExceptionHandler(DuplicateException.class)
     * public String duplicSpitterExcetion{  //定义异常处理方法
     * return "error/duplication";
     * }
     * 
     * 
     * 现在无论哪个控制抛出DuplicateException异常,都会执行这个方法duplicSpitterExcetion
     *  
     *  
     *  
     *  8,spring 中的重定向redirect,作用:防止网页后退或者刷新导致重要数据重新提交
     *  1)url模板进行重定向    路劲变量 查询参数
     *  如果作为占位符添加到url上,会作为路劲变量,如果没有作为占位符,会作为查询参数
     *  
     *  model.addAttribute("uername",username);
     *  model.addAttribute("id",id);
     *  return  "redirect:/sppiter/{uername}";
     *  
     *  url的结果为 /sppitrt/uername?id=id
     *  
     *  缺点:只能发送简单的url
     *  
     *  2)flash
     *  
     *  model.addAttribute("uername",username);
     *  model.addFlashAttribute("spitter",spitter);
     *  return  "redirect:/sppiter/{uername}";
     *  
     *  //将对象放入回话中,然后取出来
     * }
     * 
     * 
     */
    
}
原文地址:https://www.cnblogs.com/lxh520/p/9207041.html