request.setAttribute的用法

本文探讨了request对象在不同页面间的数据传递机制,包括setAttribute与getAttribute的使用方法,以及与RequestDispatcher.forward和sendRedirect的区别。同时对比了request与session的作用范围。

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

原文参考:https://blog.youkuaiyun.com/Frank_Jay/article/details/51243481

request.setAttribute通常和RequestDispatcher.forward()一起使用,而不能和sendRedirect一起使用。sendRedirect是浏览器重定向的,第二个jsp页面中获得的request对象并非是前一个页面的request,两次请求生成了前后两个不同的request对象。但使用RequestDispatcher接口的forward()方法就是从服务器端进行转发。

关于request的生命周期:方法setAttribute用来在同一个request周期中保存变量使用,如果jsp页面需要servlet的处理结构可以通过request.getAttribute获取。

request.setAttribute()和request.getAttribute()

request.getAttribute("nameOfObj"),可得到JSP页面一表单中控件的Value。其实表单控件中的Object的 name与value是存放在一个哈希表中的,所以在这里给出Object的name会到哈希表中找出对应它的value.

而不同页面间传值使用request.setAttribute(position, nameOfObj)时,只会从a.jsp到b.jsp一次传递,之后这个request 就会失去它的作用范围,再传就要再设一个 request.setAttribute()。而使用session.setAttribute()会在一个过程中始终保有这个值。

JavaScript与JSP中不能相互传值,因为JavaScript运行在客户端,而JSP运行在服务器端。若想使它们之间可以相互传递参数,可以在JSP中设置一个hidden控件,用它的value结合上面所说的用法来传递所需的数值。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值