request.setAttribute()的用法
分类专栏: Java
request在当次的请求的url之间有效一次传参数,速度快,缺点是参数只能取一次
forward是转向,将现在的请求转交,他只能在同一个容器里使用同时保存客户的请求状态。
sendRedirect是重定向,可以在同一个容器里使用,也可以发送其他容器请求,但是会丢失请求信息。它等于重发一个请求。
request.setAttribute是在请求域里面加了一个请求的参数,所以在sendRedirect以后是无法取到request.setAttribute的请求的。
解决办法(两种):
1、如果你是在同一个服务器(容器)里做的转向工作。那么可以这样
把request.setAttribute(“cha”, cha);改成request.getSession().setAttribute(“cha”, cha);
然后<%Object a = (Object)request.getSession().getAttribute(“cha”);%>其他不变。
2、你在Servlet里面这样写:
把response.sendRedirect(“a.jsp”);改成response.sendRedirect(“a.jsp?a=cha”);
那么在a.jsp页面上直接<%=request.getParameter(“a”)%>
就可以了,不用写<%Object a = (Object)request.getAttribute(“cha”);%>.
requestgetAttribute()与request.setAttribute()
request.getAttribute(“nameOfObj”)可得到JSP页面一表单中控件的Value。其实表单控件中的Object的 name与value是存放在一个哈希表中的,所以在这里给出Object的name会到哈希表中找出对应它的value。
而不同页面间传值使用request.setAttribute(position, nameOfObj)时,只会从a.jsp到b.jsp一次传递,之后这个request就会失去它的作用范围,再传就要再设一个 request.setAttribute()。而使用session.setAttribute()会在一个过程中始终保有这个值。
P.S.:JavaScript与JSP中不能相互传值,因为JavaScript运行在客户端,而JSP运行在服务器端。若想使它们之间可以相互传递参数,可以在JSP中设置一个hidden控件,用它的value结合上面所说的用法来传递所需的数值。
request.setAttribute()的用法的更多相关文章
- request.setAttribute()用法
小问题: JSP1代码 String [] test=new String[2]; test[0]="1"; test[1]="2"; request.setA ...
- request.setAttribute和request.getAttribute还有session.setAttribute和session.getAttribute还有request.getParameter和request.getAttribute区别和联系
1.session.setAttribute()和session.getAttribute()配对使用,作用域是整个会话期间,在所有的页面都使用这些数据的时候使用. 2.request.setAttr ...
- request.setAttribute()怎么用的?
request.setAttribute()怎么用的? JSP1代码 String [] test=new String[2]; test[0]="1"; test[1]=&quo ...
- request.setAttribute()、session.setAttribute()和request.getParameter()的联系与区别(记录)
1.session.setAttribute()和session.getAttribute()配对使用,作用域是整个会话期间,在所有的页面都使用这些数据的时候使用. 2.request.setAttr ...
- request.setAttribute()、session.setAttribute()和request.getParameter()的联系与区别
1.session.setAttribute()和session.getAttribute()配对使用,作用域是整个会话期间,在所有的页面都使用这些数据的时候使用. 2.request.setAttr ...
- request.setAttribute()和session.setAttribute()的区别详解
我们在Servlet和页面间传值时,经常会用到request.setAttribute()和session.setAttribute(),下面是两段示例用法 request.setAttribute( ...
- 如何获得 request, "request.getSession(true).setAttribute("a",a);"与“request.setAttribute("a",a);”区别
protected ServletContext getServletContext() { return ServletActionContext.getServletContext();} pro ...
- request.getAttribute( "result");和request.setAttribute("result",username);
request.setAttribute("result",username);在request对象中加入名为result的属性并附值为username,因为request对象是可 ...
- 直接用request.setAttribute()会报错,在这之前应该先让request获取ServletActionContext.getRequest();方法 // request.getAttribute同理
正确流程应该是 import javax.servlet.http.HttpServletRequest; HttpServletRequst request = ServletActionConte ...
随机推荐
- LeeCode——Combine Two Tables
Table: Person +-------------+---------+ | Column Name | Type | +-------------+---------+ | PersonId ...
- 【Spring Boot】Spring Boot之使用ImportBeanDefinitionRegistrar类实现动态注册Bean
一.ImportBeanDefinitionRegistrar类介绍 ImportBeanDefinitionRegistrar类通过其他@Configuration类通过@Import的方式来加载, ...
- static、const、extern等关键字
static 参考:https://blog.csdn.net/guotianqing/article/details/79828100 http://c.biancheng.net/view/222 ...
- Windows 局域网内共享
前言 在局域网内,其它成员无需密码就可以访问某台计算机共享的某个磁盘或某个文件夹. 本文记录几个关键点, 共享端:需要共享的计算机 用户端:从共享计算机读取文件的计算机 共享端 开启guest用户 1 ...
- MacOS上传文件到windows ftp时链接文件不见了
最近打包遇到了一个问题,打包完MAC的sdk包后,得到的是一个framework的文件夹,我们需要将这个framework传到ftp服务器上,另外,还要把这个文件夹下的Release文件夹里的文件替换 ...
- 未加载opencv_world330.pdb
根据设置下载对应的pdb文件. 无法查找或打开pdb文件
- 防止ARP欺骗
前言: 曾经因为宿舍里面的同学经常熬夜打游戏,好言相劝不管用,无奈之下使用arp欺骗他们的主机,使之晚上11点之后游戏延迟,掉线,最后,一到11点同学们就都上床睡觉了. 防止arp欺骗的三种思路: 在 ...
- jenkins+maven+svn实现springboot项目的自动化部署过程
说明:部署springboot项目的jar 前提(参考:https://www.cnblogs.com/myitnews/p/11493779.html): 全局安全配置(前面配置过) 全局工具配置( ...
- JDOJ 1139 水仙花数
JDOJ 1139: 水仙花数 https://neooj.com/oldoj/problem.php?id=1139 Description 打印出所有"水仙花数",所谓&quo ...
- <Array> 41 134
41. First Missing Positive 思路是把1放在数组第一个位置 nums[0],2放在第二个位置 nums[1],即需要把 nums[i] 放在 nums[nums[i] - 1] ...