servlet范围:数据共享

Posted 奋斗的少年WH

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了servlet范围:数据共享相关的知识,希望对你有一定的参考价值。

数据共享:

请求转发:request.getDispatcher("相对路径").forward(request,response)

重定向:response.sendRedirect("/项目名/路径名");

request:一次请求的范围  ,过了这次请求所有数据失效
request.setAttribute(name,value)
request.getAttribute(name)
请求转发时:session、getParameter都有值
重定向时:session、getParameter都无值


session:会话范围 :当前浏览器范围,只要不关闭浏览器 数据一直存在
request.getsession().setAttribute(name,value)
request.getsession().getAttribute(name)
请求转发时:session、getParameter都有值
重定向时:session有值、getParameter无值


servletContext:整个应用范围:服务器范围,只要服务器不关闭,数据一致存在
request.getsession().getServletContext().setAttribute(name,value)
request.getsession().getServletContext().getAttribute(name)
请求转发时:session、getParameter都有值
重定向时:session有值、getParameter无值

原则:能在request 就不要 放session 能在session  就不要在servletContext
原因:服务器可能一跑跑几年,浏览器页面也可能玩一天才关闭,只有请求是一次性的

注意:1、request.getAtribute()与request.getParameter()获得的值是不同的 request.getAtribute(name)获得是request.setAttribute(name,value)里的值,值可以任意改写 request.getParameter()是获得页面的值
2、session范围:赋值粘贴传值后的打开的新窗口,而不是打开新的浏览器

 

以上是关于servlet范围:数据共享的主要内容,如果未能解决你的问题,请参考以下文章

网络技术理论:包片段帧数据报和段

网络技术理论:包片段帧数据报和段

ServletContext的概念和作用范围

片段之间的共享数据(父列表视图和子列表视图)

C 中的共享内存代码片段

servlet如何重定向