Springmvc关于图片上传,json数据,拦截器案例的详解
2017-06-03 23:04
861 查看
图片上传
第一步上传图片的表单表达是如下,注意一下几点 enctype=”mulitipart/form-data” 提交方式为post<form id="itemForm" action="${pageContext.request.contextPath }/updateitem.action" method="post" enctype="multipart/form-data"> <input type="file" name="pictureFile"/>
2.在cotroller中建立一个方法用于图片上传:注意:一定要有MultipartFile类型的参数 pictureFile 而且一定要注意参数值一定要保证是pictureFile.同时在springmvc.xml文件中建立一个对MultipartFile的实例化bean对象。
@RequestMapping(value = "/updateitem.action") public String updateitem(QueryVo vo, MultipartFile pictureFile) throws IllegalStateException, IOException { // 保存图片d:upload String name = UUID.randomUUID().toString().replace("-", ""); // 获取 后缀名 String ext = FilenameUtils.getExtension(pictureFile.getOriginalFilename()); //保存文件至指定的目录。 pictureFile.transferTo(new File("D:\\pic\\" + name + "." + ext)); //将文件名称保存进数据库 vo.getItems().setPic(name + "." + ext); itemservice.updateItem(vo.getItems()); //重定向到该页面 return "redirect:/item/toEdit.action?id=" + vo.getItems().getId(); }
配置上传图片的实例对象
<!-- 配置上传文件实现类 name属性的值一定要是这个值负责,在容器中找不到这个对象 --> <bean name="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- 最大上传大小 --> <property name="maxUploadSize" value="5000000"></property> </bean>
Json数据
json数据通过Ajax请求到服务器然后回调到页面**1.首先要引入jQuery
2.通过书写ajax代码来发送json字符串,这里有一个标准而且严格的数字方式。**
$(function() { //alert("a"); //声明一个json字符串。 var param = '{"id":1,"name":"测试商品信息","price":660,"detail":"测试商品描述","pic":"123456.jpg"}'; $.ajax({ url : "${pageContext.request.contextPath }/json.action", data : param, contentType : "application/json", type : "post", dataType : "json",//回调 success : function(data) { //下边这是回调内容代码 alert(data.name); } }); });
3.通过在控制器中接受所发送的数据。
//其中有方法返回至而且加上了@ResponseBody 这时对json字符串的回调。通过return返回对象,通过该注解可以将对象转换成json格式字符串,我们可以在前台页面重新获得json字符串数组。
@RequestBody这是接收的请求对象将json数组转换为Items对象。
//json字符串的形参
@RequestMapping(value = "/json.action") public @ResponseBody Items json(@RequestBody Items items) { System.out.println(items.getName()); return items; }
使用Springmvc拦截器
首先建立一个类实现HandlerInterceptor接口。package com.springmvc.interceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; public class Intrceptor1 implements HandlerInterceptor { // 拦截之前 public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception { // TODO Auto-generated method stub System.out.println("拦截器一前"); //返回true即可放行,否则不能通过 return true; } // 页面渲染 public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3) throws Exception { // TODO Auto-generated method stub System.out.println("拦截器后一"); } // 拦截之后 public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3) throws Exception { // TODO Auto-generated method stub System.out.println("页面渲染一后"); } }
这里的拦截器需要在springmvc中进行配置
<mvc:interceptors> <!-- 配置多个拦截器 --> <mvc:interceptor> <!--配置映射路径,这里两个*指的是在根目录下还有文件需要拦截--> <mvc:mapping path="/**" /> <!-- 自定义拦截器类 --> <bean class="com.springmvc.interceptor.Intrceptor1" /> </mvc:interceptor> <mvc:interceptor> <!--拦截项目下的所有,两个*表示如果有多个文件路径也可以进行拦截如:abd/def/efg.action--> <mvc:mapping path="/**" /> <!-- 自定义拦截器类 --> <bean class="com.springmvc.interceptor.Intrceptor2" /> </mvc:interceptor> </mvc:interceptors>
一个项目中可以配置多个拦截器进行对项目进行拦截,我们在多个拦截器发挥的作用总结如下
总结:
preHandle按拦截器定义顺序调用
postHandler按拦截器定义逆序调用
afterCompletion按拦截器定义逆序调用
postHandler在拦截器链内所有拦截器饭或成功调用 afterCompletion只有preHandler返回true才调用
相关文章推荐
- Springmvc关于图片上传,json数据,拦截器案例的详解
- JAVAWEB开发之SpringMVC详解(二)——高级开发、数据回显、参数绑定集合、图片上传、json交互、validation校验、异常处理、RESTful支持、拦截器
- springMVC学习笔记---day04-上传图片、JSON转对象、校验、全局异常、拦截器、静态资源
- 【SpringMVC注解开发】上传图片---json数据交互学习笔记十
- springMVC学习笔记--上传图片、JSON转对象、校验、全局异常、拦截器
- SpringMVC和Mybatis(四)异常处理、上传图片、json的数据交互
- 框架 day69 SpringMVC高级(Validation校验,数据回显,上传,json数据交互,RESTful支持,拦截器)
- springMVC返回json数据乱码问题及@RequestMapping 详解
- 关于ext与springMVC中上传文件并以JSON格式返回入STORE的问题
- [转] 关于Struts-JSON配置(详解带实例struts2的json数据支持)
- 关于利用asi上传图片,服务器那边接收不到数据
- 怎么在SpringMvc拦截器或者request中取得前端传递过来的Json数据
- 关于SpringMVC返回json数据的三种方式
- 关于移动端上传图片传递字符串到JAVA服务器端,JAVA服务器端拿到字符串数据进行上传
- 关于CKEditor4.5.6的使用,自定义toolbar配置,上传图片案例(SpringMVC+MyBatis案例),自定义行高,去编辑器的中内容,将编辑器中内容设置到指定的位置等
- SpringMVC案例3----spring3.0项目拦截器、ajax、文件上传应用
- SpringMVC中文件上传和json数据配置
- 使用ajaxFileUpload与SpringMVC实现异步上传下载文件并返回json数据
- 关于JSON类型的数据的详解
- SpringMVC——返回JSON数据&&文件上传下载