JSP中request.setAttribute()出现取不到值的情况 | 您所在的位置:网站首页 › jsp中的转发 › JSP中request.setAttribute()出现取不到值的情况 |
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 实验室设备网 版权所有 |