1. 解决乱码问题1.配置tomcat为UTF-8 (URIEncoing=”UTF-8”)
2.配置过滤器(配置characterEncodingFilter类中的encoding(设置request),forceEncoding(设置response))
<!-- 配置乱码 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
1.配置tomcat为UTF-8 (URIEncoing=”UTF-8”)
2.配置过滤器(配置characterEncodingFilter类中的encoding(设置request),forceEncoding(设置response))
<!-- 配置乱码 -->
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2. 解决springmvc拦截/所有资源问题:
在配置文件中引入mvc标签
xmlns:mvc="http://www.springframework.org/schema/mvc"
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd
<!-- springmvc 配置拦截/ 所有资源都被拦截 图片无法展示 将除控制层以外的资源交回给servlet处理 -->
<mvc:default-servlet-handler/>
<!-- 将springmvc注解的action交给springmvc处理 -->
<mvc:annotation-driven></mvc:annotation-driven>
类转换异常处理:一般都是jar冲突
将原来的aspectj公司的aspectjeaver jar包换成org.aspecj中aspectjeaver 的jar包
3. 文件上传
使用springMVC包装的解析器(CommonsMultipartResolver)进行文件上传控制 需要引入 apache的 common-fileupload组件包
1.表单必须是post
2设置编码格式pplication/x-www-form-urlencoded 不支持文件上传
multipart/form-data 支持文件上传
3.文件选择框 input type=file
4.<!-- 启用文件上传 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 限制上传文件大小5M -->
<property name="maxUploadSize" value="5242880"></property>
</bean>
5.<!--实现上传文件
action方法接受文件 -->
@RequestMapping(value="/fileUpload")
public String fileUpload(@RequestParam("myImg") MultipartFile file) throws IllegalStateException, IOException{
File destFile=new File("c:/"+file.getOriginalFilename());
file.transferTo(destFile);
return "/param/suc.jsp";
}
4.文件下载
@RequestMapping(value="/fileDowload")
public ResponseEntity<byte[]> fileDowload() throws Exception{
String fileName="用户.txt";
//需要下载的目标文件
File file=new File("c:/"+fileName);
//设置响应头
HttpHeaders hh=new HttpHeaders();
//设置下载的文件的名称
hh.setContentDispositionFormData("attachment", URLEncoder.encode(fileName, "UTF-8"));
//读取目标文件为二进制数组
byte[] fileByte=FileCopyUtils.copyToByteArray(file);
//构建ResponseEntity对象
ResponseEntity<byte[]> re=new ResponseEntity<byte[]>(fileByte, hh, HttpStatus.CREATED);
return re;
}