getAttibute和getParameters的区别

本文详细解析getAttribute和getParameter的区别,包括数据获取方式、数据传递路径和内存管理,并通过实例展示两者在JSP中的使用场景,特别是如何利用session传递对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    今天在看系统代码时,发现在get参数时,有的用的getAttribute,有的用的是getParameter,然后上网搜了一下两者的区别,对于初学时不太明白的问题,现在能看的八九不离十了。

转载自http://panlianghui-126-com.iteye.com/blog/732789

    一:他们取得值不同,getAttribute获得的是对象,所以当需要的是String类型时,要进行强制类型转换。而getParameter获得的类型是Stirng.

    二:数据传递路径不同,request.getParameters方法传递的数据是从web客户端到web服务器,代表http的请求数据,用于表单或url重定向使用。而requset.getAttribute方法传递的参数只存在与web容器内部,在具有转发关系的web组件之间共享(servlet和jsp)

    三:在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的生命周期较长。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值