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

1.文件上传

1.1part方式

第一:在web.xml中的dispatcherServlet中配置<multipart-config/>

第二:通过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中使用

 <mvc:resources mapping="" location=""></mvc:resources>的方式一一将静态资源放行

第三种(主要方式):在springmvc中使用 <mvc:default-servlet-handler/>直接放行静态资源   

4 异常处理

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

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

方式三:

1.编写枚举类

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

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

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

5 拦截器

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

在springmvc.xml中进行配置 <mvc:interceptors>

6 日期格式转换

1.key=value

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

或实现Converter<String, Date>接口重写convert方法后在springmvc.xml配置

 <bean id="conversionService2" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">

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

2.json

 @JsonFormat(pattern = )

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值