httpServeltRequest和Model传值的区别

HttpServletRequest request  //前端输出必须使用形如${user.id }的形式-----在package javax.servlet.http.HttpServletRequest 包中;

Model model  //前台输出必须使用形如${ul.value.属性名 }的形式-----在package org.springframework.ui.Model;包中

-----------------------------------------------------------

Model model, HttpServletRequest request, ModelMap map声明变量

1.request.getSession().setAttribute("test", "张三"); //先获取session,然后把值放到session里面(session不关,在哪都能取到)
2.request.setAttribute("test", "张三");          //把值放到request里面(只能在同一个request请求里取到值)
3.map.addAttribute("test", "张三");            //把值放到ModelMap里面
4.model.addAttribute("test", "张三");        //把值放到Model里面

与上面对应的取值方式是:

1.request.getSession().getAttribute("test")

2.request.getAttribute("test")

3.${test}

4.${test}

需要注意${test}这个取值方式对以上四种都适用,但取值的优先级不同,优先取Model和ModelMap的,Model和ModelMap是同一个东西,谁最后赋值的就取谁的,然后是request,最后是从session中获取

有几点需要说明与注意:

1.关于request请求,生命周期为 :发送连接请求——收到回复   至此request请求就失效了,放到里面的值也就取不到了;

2.而session不同,只要session会话不结束,session里面的值会一直存在(在不同请求页面都要用到的值我们一般都放到session里)

3.但是,session里的值会被替换,例如:

request.getSession().setAttribute("test", "张三");

request.getSession().setAttribute("test", "李四");

这时session中test属性对应的值就换成了"李四"

4.上面对应的4种,都存在被替换

原文地址:https://www.cnblogs.com/yunianzeng/p/11980083.html

时间: 2024-07-31 23:16:42

httpServeltRequest和Model传值的区别的相关文章

Java SpringMVC框架学习(二)httpServeltRequest和Model传值的区别

为什么大多程序在controller中给jsp传值时使用model.addAttribute()而不使用httpServeletRequest.setAttribute()? 事实上model数据,最终spring也是写到HttpServletRequest属性中,只是用model更符合mvc设计,减少各层间耦合. @RequestMapping(value="/list",method=RequestMethod.GET) public String list(Model model

Azure ARM (10) ARM模式下的虚拟机和Classic Model虚拟机的区别

<Windows Azure Platform 系列文章目录> 本文内容比较多,请大家仔细阅读,谢谢! 请读者注意,在Azure ARM平台,有两种虚拟机模式:经典虚拟机和ARM虚拟机 ASM部署(经典虚拟机): 1.我们通过Azure Classic Portal: http://manage.windowsazure.cn,部署的都是ASM资源(经典虚拟机) 2.如果我们通过Azure New Portal (http://portal.azure.cn) 创建,需要选择部署模式为Clas

js架构设计模式——MVVM模式下,ViewModel和View,Model有什么区别

MVVM模式下,ViewModel和View,Model有什么区别 Model:很简单,就是业务逻辑相关的数据对象,通常从数据库映射而来,我们可以说是与数据库对应的model. View:也很简单,就是展现出来的用户界面. 基本上,绝大多数软件所做的工作无非就是从数据存储中读出数据,展现到用户界面上,然后从用户界面接收输入,写入到数据存储里面去.所以,对于数据 存储(model)和界面(view)这两层,大家基本没什么异议.但是,如何把model展现到view上,以及如何把数据从view写入到m

mvc model 传值两种方式区别

1: controller中: public actionresult index() { M m=new M(); return view(m) } view中: @model.phone vs 中 phone 不能自动识别 2: public actionresult index() { return view() } view中: @{ M m=new M(); } @m.phone 这时phone 可以通过智能感知功能显示,相比第一种要简便.

spring框架中ModelAndView、Model、ModelMap区别

转载来源:http://www.cnblogs.com/google4y/p/3421017.html 注意:如果方法声明了注解@ResponseBody ,则会直接将返回值输出到页面. 首先介绍ModelMap[Model]和ModelAndView的作用 Model 是一个接口, 其实现类为ExtendedModelMap,继承了ModelMap类. ModelMapModelMap对象主要用于传递控制方法处理数据到结果页面,也就是说我们把结果页面上需要的数据放到ModelMap对象中即可,

SPRING框架中ModelAndView、Model、ModelMap区别及详细分析

注意:如果方法声明了注解@ResponseBody ,则会直接将返回值输出到页面. 首先介绍ModelMap[Model]和ModelAndView的作用 Model 是一个接口, 其实现类为ExtendedModelMap,继承了ModelMap类. ModelMapModelMap对象主要用于传递控制方法处理数据到结果页面,也就是说我们把结果页面上需要的数据放到ModelMap对象中即可,他的作用类似于request对象的setAttribute方法的作用,用来在一个请求过程中传递处理的数据

Intent 传值和 Bundle传值的区别

http://blog.csdn.net/yanzi1225627/article/details/7802819 举个例子  我现在要从A界面   跳转到B界面或者C界面   这样的话 我就需要写2个Intent  如果你还要涉及的传值的话 你的Intent就要写两遍添加值的方法 那么 如果我用1个Bundle  直接把值先存里边 然后再存到Intent中 不就更简洁吗? 另外一个例子  如果我现在有  Activity A ,B ,C:现在我要把值通过A经过B传给C你怎么传 如果用Inten

在Activity之间使用Intent传值和Bundle传值的区别和方式

两者本质上没有任何区别.Bundle只是一个信息的载体 将内部的内容以键值对组织 Intent负责Activity之间的交互 自己是带有一个Bundle的Intent.putExtras(Bundle bundle)直接将Intent的内部Bundle设置为参数里的bundleIntent.getExtras()直接可以获取Intent带有的Bundle intent.putExtra(key, value)和Bundle bundle = intent.getExtras();bundle.p

MVC中@Html.DisPlayFor(model=&gt;model.newsName)和 @Model.newsName的区别

MVC中,在Controllers查询到数据,返回一个实体给View并显示,可以用@Html.DisPlayFor(model=>model.newsName)和 @Model.newsName这两种方式显示某个字段数据(如newsName),但是,这两者是用区别的,即如果Controllers中没有查询到数据,则会返回一个值为null的实体(当然你可以进行判断,不返回null到view中),用 @Model.newsName这种方式显示的话会报错.下面我就用一个实例来演示一下: Control