@RequestMapping("/testCookieValue")
public String testCookieValue(@CookieValue(value="JSESSIONID") String id) {
System.out.println(id);
return "success";
}
获取url的JSESSIONID,但注意的是:id的类型应为String类型,否则报错
使用Servlet API作为入参
spring mvc 底层有大量公众业务去处理
在有些情况,spring MVC 需要使用Servlert API,spring mvc支持九种类型servlet对象
HttpServletRequest:请求
HttpServletResponse:响应
HttpSession:会话
java.security.Frinclpal:授权
Locale:本地信息
InputStream:输出流
OutputStream:输入流
Reader:输出流
Writer:输入流
@RequestMapping("/testservletapi")
public String testservletapi(HttpServletRequest request,HttpServletResponse reponse) {
System.out.println(request);
System.out.println(reponse);
return "success";
}
处理模型数据
数据模型的定义:http://blog.sina.com.cn/s/blog_76baa3d101010r7o.html
Spring MVC提供了以下几种途径输出模型数据:
-ModelAndView:处理方法返回值类型为ModelAndView时,方法体即可通过该对象添加模型数据
1.控制器处理方法的返回值如果为ModelAndView,则既包含视图信息,也包含模型数据信息。
2.方法的内部,创建ModelAndView对象:
设置视图:
setView(view view);
setViewName(String);
添加模型数据:
addObject(String,Object);
addObjects(Map map);
3.ModelAndView当中的模型数据放到请求范围中:
控制器方法中的返回值类型要注意
@RequestMapping("/testModelAndView")
public ModelAndView testModelAndView() {
ModelAndView mv = new ModelAndView();
//ModelAndView 模型数据的值是放到Request范围当中
mv.setViewName("success");
mv.addObject("name", "tom");
return mv;
}
success.jsp中的获取方法:
- EL表达式获取
<body>
${param.test}
</body>
<body>
success page,,,,,,,
${requestScope.name }
</body>
运行结果:
-Map及Model:入参
org.springframework.ui.Model,org.springframework.ui.ModelMap或java.uti.Map时,处理方法返回时,Map中的数据会自动添加到模型中
-@SessionAttributes:模型中的某个属性暂存到HttpSession中,以便多个请求之间可以共享这个属性
-@ModelAttribute:方法入参标注该注解后,入参对象就会放到数据模型中。
接下来会学习下面几种模型数据的方法