您的位置:首页 > 编程语言 > Java开发

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

2017-10-03 16:48 459 查看
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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java