package com.itheima.controller;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.itheima.domain.User;
import com.itheima.domain.VO;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
@Controller
@RequestMapping("user")
public class UserController {
//请求地址http://localhost:8080/quick 如果写在类上 //请求地址http://localhost:8080/xxx/quick
@RequestMapping(value = "/quick",method = RequestMethod.GET,params = {"username"})
public String save(){
System.out.println("Controller save running....");
//加/意思是从当前web应用下加载资源
return "success";
}
@RequestMapping(value = "/quick2")
public ModelAndView save2(){
ModelAndView modelAndView=new ModelAndView();
//设置模型数据
modelAndView.addObject("username","itcast");
//设置视图名称
modelAndView.setViewName("success");
return modelAndView;
}
@RequestMapping(value = "/quick3")
public ModelAndView save3(ModelAndView modelAndView){
//设置模型数据
modelAndView.addObject("username","itheima");
//设置视图名称
modelAndView.setViewName("success");
return modelAndView;
}
@RequestMapping(value = "/quick4")
public String save4(Model model){
model.addAttribute("username","博学谷");
return "success";
}
@RequestMapping(value = "/quick5")
public String save5(HttpServletRequest request){
request.setAttribute("username","传智播客");
return "success";
}
@RequestMapping(value = "/quick6")
public void save6(HttpServletResponse response) throws IOException {
response.getWriter().print("hello itcast");
}
@RequestMapping(value = "/quick7")
@ResponseBody //告知SpringMvc该方法不进行视图跳转 直接进行数响应
public String save7() throws IOException {
return "hello itheima";
}
@RequestMapping(value = "/quick8")
@ResponseBody
public String save8() throws IOException {
return "{'username':'zhangsan','age':'18}";
}
@RequestMapping(value = "/quick9")
@ResponseBody
public String save9() throws IOException {
User user=new User();
user.setUsername("lisi");
user.setAge(30);
//使用JSON转换工具将对象转换成JSON格式字符串
ObjectMapper objectMapper = new ObjectMapper();
String json = objectMapper.writevalueAsString(user);
return json;
}
@RequestMapping(value = "/quick10")
@ResponseBody
public User save10() throws IOException {
User user=new User();
user.setUsername("lisi");
user.setAge(30);
return user;
}
@RequestMapping(value = "/quick11")
@ResponseBody
//形参和请求参数name相同会自动匹配封装
public void save11(String username,int age) throws IOException {
System.out.println(username+age);
}
@RequestMapping(value = "/quick12")
@ResponseBody
//请求参数name和POJO参数的属性名一致,会自动映射匹配
public void save12(User user) throws IOException {
System.out.println(user);
}
@RequestMapping(value = "/quick13")
@ResponseBody
//请求参数name和数组名一致,会自动映射匹配
public void save13(String[] str) throws IOException {
System.out.println(Arrays.asList(str));
}
@RequestMapping(value = "/quick14")
@ResponseBody
//方法1:把List封装到VO对象当中
public void save14(VO vo) throws IOException {
System.out.println(vo);
}
@RequestMapping(value = "/quick15")
@ResponseBody
public void save15(@RequestBody List userList) throws IOException {
System.out.println(userList);
}
@RequestMapping(value = "/quick16")
@ResponseBody
public void save16(@RequestParam(value = "name",required = false,defaultValue = "123") String username) throws IOException {
System.out.println(username);
}
@RequestMapping(value = "/quick17/{name}")
@ResponseBody
public void save17(@PathVariable(value = "name") String username) throws IOException {
System.out.println(username);
}
@RequestMapping(value = "/quick18")
@ResponseBody
public void save18(Date date) throws IOException {
System.out.println(date);
}
@RequestMapping(value = "/quick19")
@ResponseBody
public void save19(HttpServletRequest request, HttpServletResponse response, HttpSession session) throws IOException {
System.out.println(request);
System.out.println(response);
System.out.println(session);
}
@RequestMapping(value = "/quick20")
@ResponseBody
public void save20(@RequestHeader(value = "User-Agent",required = false) String user_agent) throws IOException {
System.out.println(user_agent);
}
@RequestMapping(value = "/quick21")
@ResponseBody
public void save21(@cookievalue(value = "JSESSIONID") String jsessionId) throws IOException {
System.out.println(jsessionId);
}
@RequestMapping(value = "/quick22")
@ResponseBody
public void save22(String username, MultipartFile uploadFile,MultipartFile uploadFile2) throws IOException {
System.out.println(username);
//获得上传文件名称
String filename = uploadFile.getOriginalFilename();
uploadFile.transferTo(new File("D:\upload\"+filename));
String filename2 = uploadFile2.getOriginalFilename();
uploadFile.transferTo(new File("D:\upload\"+filename2));
}
@RequestMapping(value = "/quick23")
@ResponseBody
public void save2(String username, MultipartFile[] uploadFile) throws IOException {
System.out.println(username);
//获得上传文件名称
for (MultipartFile multipartFile : uploadFile) {
String originalFilename = multipartFile.getOriginalFilename();
multipartFile.transferTo(new File("D:\upload\"+originalFilename));
}
}
}