前提:
springmvc框架的搭建
配置依赖
配置web.xml springmvc转发器
配置springmvc配置文件
springmvc使用
1)解析http请求,获得/限制数据
@Controller 表明为一个请求
@RequestMapping(params,value,method,headers) 匹配请求路径,方法,请求头,请求参数
@PathVariable(value) 获得请求路径中的值
@RequestHeader(required,value) 获得请求头中的值
@RequestParam(required,value) 获得请求体中的值
@CookieValue(required,value) 获得cookie中的值
@RequestBody 将返回值标记为返回体
2)将数据输入模型
ModelAndView对象
Map对象
@modelAttributie
@sessionAttribute(value={“name”},types={String.class})
pojo对象
本质:使用请求域,sesison域,context域,将请求内容注入其中
不推荐使用,建议直接传递servlet相关对象,再将参数注入内容中
HttpServletRequest
HttpServletResponse
HttpSession
java.security.Principal
Locale
InputStream
OutputStream
Reader
Write
3)返回响应
视图跳转
重定向
转发
json处理(今天
接收json类型的数据:使用@RequestBody来接受(处理中文乱码,处理特殊符号乱码
使用jackson解析json,将字符串转换为对象,可以获取里面的节点(map pojo….任何java对象
例子:”{\”a\”:10,\”b\”:{\”aa\”:10,\”bb\”:20},\”c\”:[1,2,3]}”—>{a=10, b={aa=10, bb=20}, c=[1, 2, 3]}
json对象会被解析成为LinkedhashMap
数组会被解析成为arraylist
ObjectMapper mapper = new ObjectMapper();
hashMap = mapper.readValue(body, HashMap.class);
java对象生成json
ObjectMapper mapper = new ObjectMapper();
mapper.writeValueAsString(map);
返回json字符串
文件上传和下载(周六
服务器接受单文件/多文件
http://www.cnblogs.com/fjsnail/p/3491033.html
pom中配置commons-fileupload依赖
在springmvc配置文件中配置
id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="104857600" />
<property name="maxInMemorySize" value="4096" />
<property name="defaultEncoding" value="UTF-8">property>
….
代码:
@RequestParam("file") CommonsMultipartFile file 将请求中的上传文件注入到file中
file对象可以获得文件的名字,表单的名字,文件的大小,并且将文件储存
下载文件
http://www.imooc.com/article/2760
4)其他问题
对请求内容进行编码,防止出现中文乱码
springmvc 默认使用utf-8解析请求,utf-8也是要求使用的编码,无需其他设置,需要前端配合
对响应的内容进行编码,防止中文出现乱码
使用responsebody即使在requestMapping中配置了produces依然无法生效,使用response.setHeader可以解决