域对象共享数据

1 域对象

  • 域对象包括以下三个(范围从小到大):
  • request:请求范围
  • session:一次会话范围(浏览器关闭)
  • application:应用范围(服务器关闭)

2 使用ServletAPI向request域对象共享数据

使用很少

@RequestMapping("/test")
public String testServletAPI(HttpServletRequest request){
request.sertAttribute("attributeName","value");
return "success";
}

3 使用ModelAndView向request域对象共享数据

ModelAndView:字面意思,包含两个层面,Model & View。具备两个功能,一是实现数据共享(Model),二是页面跳转(View)
(推荐方法)其实其他所有方法的数据共享和页面跳转最终都被封装为ModelAndView

@RequestMapping("/ModelAndView")
public ModelAndView testMAV(){
/*
Model:向请求域中共享数据
View:页面跳转
*/
	ModelAndView mav = new ModelAndView();
	//向请求域中共享数据
	mav.addObject("attributeName","value");
	//设置逻辑视图
	mav.setViewName("success");
	//返回mav
	return mav;
}

4 使用Model、ModelMap、Map向Request域共享数据

三种底层类型都是BindingAwareModelMap,所以创建BindAwareModelMap的继承的父类或者接口均可
Model

@RequestMapping("/Model")
public String testModel(Model model){

	//向请求域中共享数据
	model.addAttribute("attributeName","value");
	//返回mav
	return "success";
}

ModelMap

@RequestMapping("/ModelMap")
public String testModelMap(ModelMap modelMap){

	//向请求域中共享数据
	modelMap.addAttribute("attributeName","value");
	//返回mav
	return "success";
}

Map

@RequestMapping("/map")
public String testMap(Map<String,Object> map){

	map.put("attributeName","value");
	return "success";
}

5 向session域共享数据

@RequestMapping("/session")
public String testSession(HttpSession session){
	session.setAttribute("attributeName","value");
	return "success";
}

6 向application域共享数据

@RequestMapping("/application")
public String testSession(HttpSession session){
	ServletContext application = session..getServletContext();
	application.setAttribute("attributeName","value");
	return "success";
}

PS thymeleaf中获取域中的共享数据

  • request–> ${requestAttributeName}
  • session–> ${session.sessionAttributeName}
  • application–>${application.applicationAttributeName}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值