1、返回值为void
使用response直接响应,如:
/**
* 返回类型为void
* @param request
* @param response
* @throws Exception
*/
@RequestMapping("/testVoid")
public void testVoid(HttpServletRequest request, HttpServletResponse response) throws Exception {
// 设置中文乱码
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
// 直接会进行响应
response.getWriter().print("你好");
return;
}
2、返回值为String
2.1、将数据绑订到request
@RequestMapping("/login4.do")
public String login4(AdminParam ap,HttpServletRequest req) {
System.out.println("login4()");
String adminCode = ap.getAdminCode();
//将数据绑定到request对象上
req.setAttribute("adminCode", adminCode);
return "index";
}
2.2、将数据绑定到Model
/**
* 返回类型为String
* @param model
* @return
*/
@RequestMapping("/testString")
public String testString(Model model){
UserInfo userInfo = new UserInfo();
userInfo.setUsername("张三");
userInfo.setPassword("123");
userInfo.setDate(new Date());
model.addAttribute("userInfo",userInfo);
return "success";
}
2.3、将数据绑定到ModelMap
//DispatcherServlet从ModelMap对象获取数据,然后将这些数据绑定到request.
@RequestMapping("/login6.do")
public String login6(AdminParam ap,ModelMap mm) {
System.out.println("login6()");
String adminCode = ap.getAdminCode();
mm.addAttribute("adminCode",adminCode);
return "index";
}
2.4、将数据绑订到session
@RequestMapping("/login7.do")
public String login7(AdminParam ap,HttpSession session) {
System.out.println("login7()");
String adminCode = ap.getAdminCode();
//将数据绑定到session
session.setAttribute("adminCode", adminCode);
return "index";
}
3、返回值为ModelAndView
/**
* 返回类型为ModelAndView
* @return
*/
@RequestMapping("/testModelAndView")
public ModelAndView testModelAndView(){
ModelAndView mv = new ModelAndView();
UserInfo userInfo = new UserInfo();
userInfo.setUsername("李四");
userInfo.setPassword("456");
userInfo.setDate(new Date());
// 把userInfo对象存储到mv对象中,也会把userInfo对象存入到request对象
mv.addObject("userInfo",userInfo);
// 跳转到哪个页面
mv.setViewName("success");
return mv;
}
4、重定向
4.1、返回值为void
/**
* 重定向
* @param request
* @param response
* @throws Exception
*/
@RequestMapping("/testRedirect")
public void testRedirect(HttpServletRequest request, HttpServletResponse response) throws Exception {
// 重定向
response.sendRedirect(request.getContextPath()+"/index.jsp");
return;
}
4.2、返回值为String
/**
* 使用关键字的方式进行重定向
* @return
*/
@RequestMapping("/testForwardOrRedirect")
public String testForwardOrRedirect(HttpServletRequest request){
UserInfo userInfo = new UserInfo();
userInfo.setUsername("张三");
userInfo.setPassword("123");
userInfo.setDate(new Date());
request.setAttribute("userInfo",userInfo);
// 重定向
return "redirect:/index.jsp";
}
4.3、返回值为ModelAndView
/**
* 使用RedirectView重定向
* @return
*/
@RequestMapping("/testRedirect1")
public ModelAndView testRedirect1(HttpServletRequest request){
UserInfo userInfo = new UserInfo();
userInfo.setUsername("张三");
userInfo.setPassword("123");
userInfo.setDate(new Date());
request.setAttribute("userInfo",userInfo);
RedirectView rv = new RedirectView(request.getContextPath() + "/index.jsp");
ModelAndView mav = new ModelAndView(rv);
return mav;
}
5、转发
5.1、返回值为void
/**
* 转发
* @param request
* @param response
* @throws Exception
*/
@RequestMapping("/testForward")
public void testForward(HttpServletRequest request, HttpServletResponse response) throws Exception {
UserInfo userInfo = new UserInfo();
userInfo.setUsername("张三");
userInfo.setPassword("123");
userInfo.setDate(new Date());
request.setAttribute("userInfo",userInfo);
// 编写请求转发的程序
request.getRequestDispatcher("/WEB-INF/pages/success.jsp").forward(request,response);
return;
}
5.2、返回值为String
/**
* 使用关键字的方式进行转发
* @return
*/
@RequestMapping("/testForwardOrRedirect")
public String testForwardOrRedirect(HttpServletRequest request){
UserInfo userInfo = new UserInfo();
userInfo.setUsername("张三");
userInfo.setPassword("123");
userInfo.setDate(new Date());
request.setAttribute("userInfo",userInfo);
// 请求的转发
return "forward:/WEB-INF/pages/success.jsp";
}
6、响应json数据
/**
* 模拟异步请求响应
* RequestBody注解:将json的字符串转换成JavaBean的对象
* ResponseBody注解:将JavaBean对象转换成json字符串
*/
@RequestMapping("/testAjax")
public @ResponseBody UserInfo testAjax(@RequestBody UserInfo userInfo){
// 客户端发送ajax的请求,传的是json字符串,后端把json字符串封装到userInfo对象中
System.out.println(userInfo);
userInfo.setUsername("haha");
userInfo.setPassword("123");
return userInfo;
}