SpringMVC的响应
-
直接响应
/** * 直接响应:使用response对象 * 使用:在单元方法上声明形参接收。 * 注意: * 单元方法就不需要声明返回值。 */ @RequestMapping("demo1") //声明请求方法的别名 public void demo1(String uname, String pwd, HttpServletResponse response) throws IOException { System.out.println(uname + ":" + pwd); response.getWriter().write("today is a good day"); }
-
请求转发
/** * 请求转发: * 使用:以返回值的形式告诉DispatchServlet,要请求转的资源路径。 * 格式: * return "forward:/路径"; * * 路径可以为某个jsp资源的路径,也可以是某个单元方法的别名。 * * 注意: * /表示项目根目录。 * 注意2: * 单元方法的返回值类型为String * 注意3: * 默认方式就是请求转发,forward:可以省略不写。 */ @RequestMapping("demo2") //声明请求方法的别名 public String demo2(String uname, String pwd){ System.out.println(uname + ":" + pwd); return "forward:/show.jsp"; }
-
重定向
/** * resp.sendRedirect(req.getContextPath+"/show2.jsp"); * 重定向: * 使用:以返回值的形式告诉DispatchServlet,要重定向的资源路径。 * 格式: * return "redirect:/路径" * 路径可以为某个jsp资源的路径,也可以是某个单元方法的别名。 * 注意: * /表示项目根目录。 * 注意2: * 单元方法的返回值类型为String */ @RequestMapping("demo3") //声明请求方法的别名 public String demo3(String uname, String pwd){ System.out.println(uname + ":" + pwd); return "redirect:/show.jsp"; }
-
ajax的响应
/*响应ajax的json对象,直接响应的就是对象,要导入Gson或者jackson*/ @RequestMapping("demo4") //声明请求方法的别名 @ResponseBody //告知控制器我要响应的是ajax响应 public List<User> demo4(String uname, String pwd){ System.out.println(uname + ":" + pwd); List<User> user = userService.find(); return user; }
-
返回值是ModelAndView类型
@RequestMapping("modelAndView") public ModelAndView modelAndView(){ //创建modelAndView对象 ModelAndView mv = new ModelAndView(); System.out.println("Hello MVC"); User user = new User(); user.setUname("zhangsan"); user.setPwd("123"); //把user对象存储到mv对象中,底层会把user存到request域中 mv.addObject("user",user); //跳转到哪个页面 mv.setViewName("success"); //配置了视图解析器 return mv; }