主题:Servlet机制中Request、Session、servletContext的区别分析
就servlet标准自身,servlet可以再三个不同的作用域存储数据,辨别是:
Request对象、Session对象和getServletContext()方法返回的servletContext对象中保存。以下是自己对他们之间区别的分析: 1、 首先从作用范围来说 Request 保存的键值仅在下一个request对象中可以得到。 Session 它是一个会话范围,相当于一个部分变量,从Session第一次创建知道关闭,数据都一直 保存,每一个客户都有一个Session,所以它可以被客户一直拜访,只要Session没有关闭和超时即浏览器关闭。 servletContext 它代表了servlet环境的上下文,相当于一个全局变量,即只要某个web应用在启动中,这个对象就一直都有效的存在,所以它的范围是最大的,存储的数据可以被一切用户运用,只要效劳器不关闭,数据就会一直都存在。
2、 它们的优缺点: request: 好处:用完就仍,不会招致资源占用的有限增长。 弊处:数据只能被下一个对象获取,所以在写程序时会因为无法共享数据招致每次要用都从数据库中取,多做操作,自然会对性能有一些影响。 session: 好处:是一个部分变量,可以保存用户的信息并直接取出,不用每次都去数据库抓,少做操作,极大的方便了程序的编写。 弊处:每个客户都有一个session,只能自己运用,不同session可能保存少量反复数据; 可能耗费少量效劳器内存; 另外session构建在cookie和url重写的基础上,所以用session完成会话跟踪,会用掉一点点效劳器带宽和客户端保持联络, 当然session越多,耗费的带宽越多,理论上也会对性能造成影响。 集群的session同步会是个问题。 servletContext: 好处:不用每次都去数据库抓,少做操作。 存储的数据一切客户都可以用。 可增加反复在内存中存储数据造成的开支。文章由[url=http://qianfanghui.dota8.cn/]千芳汇官网[/url]整理,收集辛苦,希望能保留出处,谢谢斑竹大哥。
Request对象、Session对象和getServletContext()方法返回的servletContext对象中保存。以下是自己对他们之间区别的分析: 1、 首先从作用范围来说 Request 保存的键值仅在下一个request对象中可以得到。 Session 它是一个会话范围,相当于一个部分变量,从Session第一次创建知道关闭,数据都一直 保存,每一个客户都有一个Session,所以它可以被客户一直拜访,只要Session没有关闭和超时即浏览器关闭。 servletContext 它代表了servlet环境的上下文,相当于一个全局变量,即只要某个web应用在启动中,这个对象就一直都有效的存在,所以它的范围是最大的,存储的数据可以被一切用户运用,只要效劳器不关闭,数据就会一直都存在。
2、 它们的优缺点: request: 好处:用完就仍,不会招致资源占用的有限增长。 弊处:数据只能被下一个对象获取,所以在写程序时会因为无法共享数据招致每次要用都从数据库中取,多做操作,自然会对性能有一些影响。 session: 好处:是一个部分变量,可以保存用户的信息并直接取出,不用每次都去数据库抓,少做操作,极大的方便了程序的编写。 弊处:每个客户都有一个session,只能自己运用,不同session可能保存少量反复数据; 可能耗费少量效劳器内存; 另外session构建在cookie和url重写的基础上,所以用session完成会话跟踪,会用掉一点点效劳器带宽和客户端保持联络, 当然session越多,耗费的带宽越多,理论上也会对性能造成影响。 集群的session同步会是个问题。 servletContext: 好处:不用每次都去数据库抓,少做操作。 存储的数据一切客户都可以用。 可增加反复在内存中存储数据造成的开支。文章由[url=http://qianfanghui.dota8.cn/]千芳汇官网[/url]整理,收集辛苦,希望能保留出处,谢谢斑竹大哥。