我想知道您什么时候想在 JSP 中设置以下页面指令:
<%@ page session="false" %>
我知道它会阻止创建 session 对象,但是什么时候需要这样做?当 JSP 不需要访问隐式 session 时,这是否被认为是最佳实践?
注意:我之所以问这个问题,是因为它在 Spring MVC 教程中,并且我假设 springsource 人员知道他们的东西 - http://blog.springsource.com/2011/01/04/green-beans-getting-started-with-spring-mvc/
最佳答案
原因之一是性能和内存。如果您有一个不需要参与 session 的页面(例如 about.jsp
或 faq.jsp
),则涉及每个 session 的默认行为 session 中的 JSP 将带来创建新 session 对象(如果尚不存在)的开销,并且随着更多对象驻留在堆上,内存使用量也会增加。
如果单个页面看到来自许多唯一用户的高流量以及高跳出率,即用户不会继续浏览,而是在查看该页面后立即离开网站,则这种效果将被大大夸大 - 容器将为每个用户创建一个新的 session 对象,该对象将永远不会再次使用,并且最终将在超时后被垃圾收集 - 添加对象创建、内存使用和垃圾收集的开销,而不会给您带来任何实际值(value)。
关于jsp - 为什么要设置 JSP 页面 session = "false"指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5515729/