springmvc文件上传下载、异常处理、拦截器、日期类型转换

1.文件上传

1.1part方式

第一:在web.xml中的dispatcherServlet中配置

第二:通过req.getPart("文件名")获取part,若存在工程下,则req.getServletContext().getRealPath("路径名"),然后part.write到路径+文件名。

若发送多个文件,则getParts后遍历写出即可。

1.2springmvc方式

导入commons-fileupload和commons-io包后,在controller中参数直接使用MultipartFile接取,需注意参数名应与前端文件名一致,接取后可用fileUtils.writeByteArrayToFile写出

2.文件下载

若采用超链接直接请求资源,这浏览器支持的格式会直接打开,不支持的下载。

若超链接访问controller,使用编码下载,则所有格式都会下载。具体思路:

req.getServletContext().getRealPath("文件名")后读取服务器文件到字节数组中,再设置请求头attachment为文件名。最后用ResponseEntity有参构造携带字节数组,请求头,状态码后返回。   

3.静态资源处理

第一种:不全部拦截,采用筛选后缀的方式拦截(如.do)

第二种:在springmvc中使用

 的方式一一将静态资源放行

第三种(主要方式):在springmvc中使用 直接放行静态资源   

4 异常处理

方式一:在web.xml配置error-page,写死错误页

方式二:创建类实现HandlerExceptionResolver接口,重写解决异常方法。

方式三:

1.编写枚举类

2.自定义异常,异常中包含枚举类

3.创建包装类用于返回前端

4.使用@ControllerAdvice注解表名解决异常的控制器,再用 @ExceptionHandler(Exception.class)注解表明解决异常的类型。参数中接收异常,用异常得到枚举类,取出枚举类属性填入包装类后返回。        

5 拦截器

创建类实现HandlerInterceptor接口,选择性重写preHandle,postHandle,afterCompletion方法。

在springmvc.xml中进行配置

6 日期格式转换

1.key=value

使用@DateTimeFormat(pattern = )注解局部转换

或实现Converter接口重写convert方法后在springmvc.xml配置

 

id需写在mvc:annotation-driven中,conversion-service=id

2.json

 @JsonFormat(pattern = )

这个注解不写,也拥有默认值

你可能感兴趣的:(java,servlet,前端)