源码分享,兰州网站建设优化,谷歌外链工具,google官方入口6. 转发和重定向
Spring MVC 的底层是 servlet#xff0c;因此在 Spring MVC 中也存在转发和重定向的概念。
对于转发而言#xff0c;其目的页面可以在 WEB-INF 目录下。重定向的目的页面不允许在 WEB-INF 目录下#xff0c;因为重定向相当于用户再次发起一次请求#xf…6. 转发和重定向
Spring MVC 的底层是 servlet因此在 Spring MVC 中也存在转发和重定向的概念。
对于转发而言其目的页面可以在 WEB-INF 目录下。重定向的目的页面不允许在 WEB-INF 目录下因为重定向相当于用户再次发起一次请求而用户不允许直接访问 WEB-INF 目录下的资源。
6.1 转发
使用 forward: 即可实现转发 转发至目的页面forward:目的页面相对站点的路径 return forward:WEB-INF/jsp/test.jsp; 转发至控制器forward:控制器 return forward:/restAdd/1/2;
处理器适配器在返回 ModelAndView 时默认使用转发方式
6.2 重定向
使用 redirect: 即可实现重定向 重定向至目的页面redirect:目的页面相对站点的路径 return redirect:index.jsp; 重定向至控制器redirect:控制器 return redirect:/restAdd/1/2;
重定向与转发不可使用 RestFul 风格直接在浏览器带参数进行访问
7. 接收请求参数和数据回显
7.1 请求参数接收 请求参数与被请求函数形参名称相同 http://localhost:8080/user/rec?namewhy Controller
RequestMapping(/user)
public class UserController {GetMapping(/rec)public String rec(String name, Model model) {System.out.println(name: name);model.addAttribute(msg, name: name);return test;}
}请求参数与被请求函数形参名称不同 http://localhost:8080/user/rec?usernamewhy Controller
RequestMapping(/user)
public class UserController {GetMapping(/rec)public String rec(RequestParam(username) String name, Model model) {System.out.println(name: name);model.addAttribute(msg, name: name);return test;}
}被请求函数形参为对象 http://localhost:8080/user/recObj?id1namewhyage1 Controller
RequestMapping(/user)
public class UserController {GetMapping(/recObj)public String recObj(User user, Model model) {System.out.println(user: user);model.addAttribute(msg, user: user);return test;}
}Data
AllArgsConstructor
NoArgsConstructor
public class User {private int id;private String name;private int age;
}7.3 数据回显
(1) ModelAndView
public class HelloController implements Controller {public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {ModelAndView mv new ModelAndView();mv.addObject(msg,HelloSpringMVC!);mv.setViewName(hello);return mv;}
}(2) Model
GetMapping(/recObj)
public String recObj(User user, Model model) {System.out.println(user: user);model.addAttribute(msg, user: user);return test;
}(3) ModelMap
Model extends ModelMap extends LinkedHashMapString, Object
GetMapping(/recObj)
public String recObj(User user, ModelMap model) {System.out.println(user: user);model.addAttribute(msg, user: user);return test;
}