Java配置实现Jackson对象获取和文件上传
2017-10-03 16:48
459 查看
Java配置类
web容器类
实体类
控制器类
upload.jsp页面
package com.csl.demo.annotation; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; import org.springframework.web.filter.CharacterEncodingFilter; import org.springframework.web.multipart.MultipartResolver; import org.springframework.web.multipart.commons.CommonsMultipartResolver; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; import org.springframework.web.servlet.view.InternalResourceViewResolver; import org.springframework.web.servlet.view.JstlView; /** * * @author Cherry * @date 2017年10月3日 */ @Configuration @EnableWebMvc//启用WebMvc @ComponentScan("com.csl.demo.annotation") public class SpringCongfigs extends WebMvcConfigurerAdapter{ //注入视图资源解析器 @Bean("viewResolver") public InternalResourceViewResolver viewResolver(){ //创建 InternalResourceViewResolver irv = new InternalResourceViewResolver(); //设置前后缀 irv.setPrefix("/"); irv.setSuffix(".jsp"); irv.setViewClass(JstlView.class); return irv; } @Bean public MultipartResolver multipartResolver(){ //文件上传对象 CommonsMultipartResolver amr = new CommonsMultipartResolver(); //设置上传限制 amr.setMaxUploadSize(1000000000); //返回 return amr; } @Bean public DemoInterceptor demoInterceptor(){ return new DemoInterceptor(); } @Bean public CharacterEncodingFilter encodingFilter(){ CharacterEncodingFilter ecf = new CharacterEncodingFilter(); ecf.setForceEncoding(true); ecf.setEncoding("UTF-8"); return ecf; } @Override public void addViewControllers(ViewControllerRegistry registry) { registry.addViewController("/upload").setViewName("upload");; } @Override public void addInterceptors(InterceptorRegistry registry) { //注册自定义拦截器 // registry.addInterceptor(demoInterceptor()); } }
web容器类
/** * */ package com.csl.demo.annotation; import javax.servlet.ServletContext; import javax.servlet.ServletException; import javax.servlet.ServletRegistration.Dynamic; import org.springframework.web.WebApplicationInitializer; import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; import org.springframework.web.servlet.DispatcherServlet; /** * @author Cherry * @date 2017年10月3日 */ public class WebConfig implements WebApplicationInitializer{ /* (non-Javadoc) * @see org.springframework.web.WebApplicationInitializer#onStartup(javax.servlet.ServletContext) */ @Override public void onStartup(ServletContext sc) throws ServletException { //注意:不是AnnotationConfigApplicationContext类 AnnotationConfigWebApplicationContext config = new AnnotationConfigWebApplicationContext(); //配置类注册到web容器 config.register(SpringCongfigs.class); //设置ServletContext config.setServletContext(sc); Dynamic servlet = sc.addServlet("dispatcherServlet", new DispatcherServlet(config)); //添加映射路径 servlet.addMapping("/"); //设置启动顺序 servlet.setLoadOnStartup(1); } }
实体类
/** * */ package com.csl.demo.annotation; /** * @author Cherry * @date 2017年10月3日 */ public class JsonDemo { private String name; private String hobby; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getHobby() { return hobby; } public void setHobby(String hobby) { this.hobby = hobby; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public JsonDemo() { super(); } public JsonDemo(String name, String hobby, int age) { super(); this.name = name; this.hobby = hobby; this.age = age; } }
控制器类
/** * */ package com.csl.demo.annotation; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.commons.io.FileUtils; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; /** * @author Cherry * @date 2017年10月3日 * @RestController注解组合了@Controller,@ResponseBody * @ResponseBody注解返回json对象 */ @RestController @RequestMapping("/hello") public class HelloController { @RequestMapping(value="/json") public JsonDemo hello(@RequestParam("param") String params) { System.out.println(params); return new JsonDemo("demo", "love", 23); } @RequestMapping(value="/listJson") public List<JsonDemo> hello2() { List<JsonDemo> list = new ArrayList<JsonDemo>(); for (int i = 0; i < 10; i++) { list.add(new JsonDemo("demo" + i, "love" + i, i)); } return list; } @RequestMapping("requestJson") public JsonDemo hello3(JsonDemo jd){ return jd ; } /** * 文件上传核心类MultipartFile */ @RequestMapping("/upload") public String hello4(MultipartFile file){ try { FileUtils.writeByteArrayToFile(new File("E:/"+file.getOriginalFilename()), file.getBytes()); return file.getOriginalFilename()+"上传成功!"; } catch (IOException e) { e.printStackTrace(); return "上传失败!"; } } }
upload.jsp页面
<body> <form action="hello/upload" enctype="multipart/form-data" method="post"> 上传文件:<input type="file" name="file"/> <input type="submit" value="上传"/> </form> </body>
相关文章推荐
- [置顶] 腾讯云 对象储存java实现COS文件上传与返回的URL
- Java 如何获取控制台日志输出的信息? WriterAppender 可以实现? 配置文件如何配置
- Java ckfinder2.6.2实现文件上传破解,获取文件信息添加到数据库中
- WPF 调用OpenFileDialog对象,实现获取文件上传路劲
- java实现ftp连接、登陆、上传、下载、删除文件、获取目录、文件列表
- Eclipse下的Java工程用JavaProject对象获取配置信息(不用读取配置文件)
- java 获取spring配置文件中bean 对象
- VB.NET下用FSO(文件系统对象模型)实现获取硬盘信息
- 在web.config中配置实现可以上传大文件
- 相对路径获取JAVA配置文件Class.getResourceAsStream() & ClassLoader的getResourceAsStream()
- java根据properties配置文件来实现功能模块的动态切换
- java web 利用 commons-fileupload-1.2 实现文件上传 解决 中文乱码& 非文件属性的读取
- JAVA实现邮箱上传文件功能
- WebWork之--使用fileUpload interceptor实现文件上传[基本配置+注意事项]
- BLOB完全实践:在Oracle中存取BLOB对象实现文件的上传和下载(原创)
- Java动态显示文件上传进度的简单实现
- VB.NET下用FSO(文件系统对象模型)实现获取硬盘信息
- 用JAVA实现ORACLE数据库的文件上传、下载
- java实现大文件的上传
- 使用JAVA技术实现文件的上传