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
谢谢大佬们观看,如有不同观点或更好的观点,请及时提出,小弟虚心请教。