必威体育Betway必威体育官网
当前位置:首页 > IT技术

request.setAttribute()的用法

时间:2019-05-31 19:45:06来源:IT技术作者:seo实验室小编阅读:85次「手机版」
 

request.setattribute

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结合上面所说的用法来传递所需的数值。

相关阅读

Swift中performSelector返回值的用法

最近使用swift,翻译OC的代码时,发现performSelector的返回值与OC中的用法相差很大。在OC中返回的是ID类型,而swift中返回的是 Unmana

JS中split的用法

最近在写一个页面,需要取时间段,没有后台支撑,前端根据时间段,实现hightcharts自动生成数据看我们前端直接用split这个属性,完美解决时

Linux内核配置工具-menuconfig用法

打开:cd进入Linux内核根目录后,控制台输入make menuconfig 移动选择框:上下键、左右键。 搜索功能:”/”键。 选择:回车。 打开/关闭某

sequence.pad_sequences 的用法举例

>>> from tensorflow.keras.preprocessing import sequence>>> help(sequence.pad_sequences)>>> import numpy as np>>> a=np.ar

Oracle 查询类似 select top 的用法

Oraclet 没有像sql server所支持的top语法,不过可通过rownum控制。rownum没有所谓的小于,只有大于。 –查询前10条数据 select * fr

分享到:

栏目导航

推荐阅读

热门阅读