JAVA后台 关于如何从后台传递信息在jsp前端页面显示

来源:互联网 发布:java热血征途2008安卓 编辑:程序博客网 时间:2024/06/05 01:11

JAVA后台 关于如何从后台传递信息在jsp前端页面显示

首先,博主今天为了将后台的信息传递到前台,废了不少的脑筋,一开始,博主采用了request.setAttribute()的方法,来实现的,具体代码如下:

在servlet中,写上:
request.setAttribute(“name”, loginUser.getAccount());//这里的意思可以理解为将loginUser.getAccount()的值放入名为“name”的容器里

在jsp页面中,写上:
欢迎您,${name}//意思是将name中的数据显示出来,也就是后台传递的内容。

结果截图:
这里写图片描述

哈哈哈,博主一看,信息传过去了,内心窃喜,搞定!!!

然而,当博主为了万(wan)全(quan)起(shou)见(jian),刷新了一下页面,发现,从后台传递到jsp的值不见了!!!卧槽,博主内心一阵mmp。
这是怎么回事???
当博主重新打开网页,重新输入信息,值又回来了,但一刷新页面,值又不见了。因此,博主猜想可能是因为request.setAttribute()的生命周期是不是太短了,导致不能一直显示下去。

所以当博主把后台代码改成:
request.getSession().setAttribute(“name”, loginUser.getAccount());

重新运行了程序,正常显示,刷新,正常显示,因此,问题解决!

这里说一下关于request.getsession().setAttribute()request.setAttribute的区别 :
request.getSession().setAttribute(“name”,loginUser.getAccount())把,loginUser.getAccount()返回值保存到session当前会话中,名称为name,只要当前会话不过期,任何地方都可以访问到; request.setAttribute(“name”,loginUser.getAccount())把,loginUser.getAccount()的返回值保存到request当前请求中,名称为name,只在当前请求中访问到,其他请求中无法访问
request.setAttribute这个的生命周期就是request级别的
request.getSession().setAttribute这个的生命周期是session级别的

因此,如果小伙伴们是为了传递短时间的信息,如:用户登录界面中的信息报错,可以用声明周期较短的request.setAttribute
而为了使信息可以保存更久的时候,则应该用request.getSession().setAttribute

谢谢大佬们观看,如有不同观点或更好的观点,请及时提出,小弟虚心请教。

阅读全文
0 0