JSP中getAttribute和getParameter的区别

request  中对属性的操作也非常重要,如果要使用 getAttribute( ) 则之前一定要有setAttribute  的操作,否则无法取得。

如果使用 getParameter ( ) 则表示接收参数,参数的来源有:

1, 表单提交

2, 地址重写

3, 通过 <jsp  include>、<jsp forward> 传递而来的参数。

getParameter ( )是无法接受setAttribute 所设置的属性的。

原地址:http://panlianghui-126-com.iteye.com/blog/73278          

作为web的初学者,一直被getAttribute和getParameter这两个方法给困扰着,今天在网上搜了下,很受用,有那么点感觉了,现在来理下思路。

第一,它们取到的值不同。getAttribute取到的是对象(object),而getParameter取到的是String。

第二,数据传递路劲不同。request.getParameter方法传递的数据是从web客户端传到web服务器,代表http的请求数据,用于表单或url重定向时使用。

而request.getAttribute方法传递的数据只存在于web容器内部,在具有转发关系的web组件之间共享(servlet和JSP),即在request范围内存在对象。

第三,在jsp中,setAttribute是把这个对象放到该页面所对应的一块内存中,当页面服务器转发到另一个页面时,应用服务器会把这块内存拷贝到另一块页面内存中,(这是参考http://wenku.baidu.com/view/99e0cdaedd3383c4bb4cd287.html讲的,我没测试过,但是我在servlet测试过用重定向时,在aServlet中用request.setAttribute(),在重定向到b时,用request.getAttribute取不到值,这个与第二点相符(我在测试可能用到mvc模式,在action里用request.getAttribute()接收,这相当于request被重新生成了一次,所以用request就取不到值))。

那么,既然对象是存在内存中的,用session来setAttribute就能在重定向的servlet和jsp传对象了,因为session的生命周期较长。

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

原文地址:

http://blog.sina.com.cn/s/blog_531101430100lrzt.html

JSP的九大内置对象中request:

  A:form表单默认提交过来的就是字符串。(非常重要)
  B:学会看内存地址,例如:[java.lang.String.123456...//此内存地址为字符串数组,而非字符串。
  C:request的作用域(一次链接)。
  D:请求转发和重定向的不同:数据的载体。
  Jsp中的request等同于Servlet中HttpServletRequest
  request.getParameter("表单元素的name值");           //通过表单元素的name值,获得Value值。
  request.getAttrabute("属性的名称") ;                           //通过属性名称获取传入的属性的Value值
  request.setAttrabute("属性的名称","属性的值");        //为属性赋值,前面为属性的名称,后面为属性的值。


  request.getContentPath();                                            //返回项目的根目录。
  request.getMethod();                                                     //获得提交方式,get/post
  request.getProtocol();                                                   //取得协议例如:HTTP 1.1
  request.getQueryString();                                            //获得通过get方式提交过来的问号后面的值。
  request.RemoveAttribute();                                         //清空属性。
  request的声明周期(一次链接),使用范围,属性有哪些应用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值