JSP中request.setAttribute()出现取不到值的情况 您所在的位置:网站首页 jsp中的转发 JSP中request.setAttribute()出现取不到值的情况

JSP中request.setAttribute()出现取不到值的情况

2024-03-26 16:43| 来源: 网络整理| 查看: 265

jsp1的代码:

Title 处理页

 jsp2的代码:

Title pwd参数的值为:

 运行结果:

 jsp2取不到jsp1中request.setAttribute()的值,为什么会出现这个问题? 

 那么我们就可以从request的生命周期来思考了:

request

请求作用域,就是客户端的一次请求。比如访问某个页面,就是一次请求。页面访问结束,该页面的request就结束了

既然如此,那么我们在jsp1的时候已经完成了一次请求,这时request的生命周期结束,当进入jsp2的时候,request.setAttribute()已经成为null,(两次请求生成了两个不同的request对象)

 如何解决这个问题?

我们先研究一下web中传值的时候三个容器,还有一个request,前面已经讲过

application

全局作用范围,整个应用程序共享,就是在部署文件中的同一个webApp共享,生命周期为:应用程序启动到停止。

session

会话作用域,当用户首次访问时,产生一个新的会话,以后服务器就可以记住这个会话状态。生命周期:会话超时,或者服务器端强制使会话失效。

打开一个浏览器请求一个网站的页面后,Session开始,当session超过时间限制(一般是20分种)后,session注销而失效或是人为使用session.invalidate();使用session失效。

用浏览器打开一个web程序,一个浏览器窗口就会有一个session,且是唯一的,过了session的生存周期就没了,或者是你关了窗口也就没了。

不同浏览器的session在计算机中并不是同一个。

既然如此,我们将request改为session

问题解决了,为什么?因为session的生命周期是你打开浏览器窗口到你关闭浏览器窗口。

我们再改为application试试

和session的结果一样。 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有