Java配置实现Jackson对象获取和文件上传

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/baidu_38868875/article/details/78155300

Java配置类

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>

------------------------------------------------------------------访问IT资料站学习更多IT知识!

猜你喜欢

转载自blog.csdn.net/baidu_38868875/article/details/78155300