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范围:数据共享的主要内容,如果未能解决你的问题,请参考以下文章