jsp - 为什么要设置 JSP 页面 session = "false"指令?

标签 jsp session

我想知道您什么时候想在 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.jspfaq.jsp),则涉及每个 session 的默认行为 session 中的 JSP 将带来创建新 session 对象(如果尚不存在)的开销,并且随着更多对象驻留在堆上,内存使用量也会增加。

如果单个页面看到来自许多唯一用户的高流量以及高跳出率,即用户不会继续浏览,而是在查看该页面后立即离开网站,则这种效果将被大大夸大 - 容器将为每个用户创建一个新的 session 对象,该对象将永远不会再次使用,并且最终将在超时后被垃圾收集 - 添加对象创建、内存使用和垃圾收集的开销,而不会给您带来任何实际值(value)。

关于jsp - 为什么要设置 JSP 页面 session = "false"指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5515729/

相关文章:

php - 关闭 session 而不写入或销毁它

jsf - 事件 session 过多

php - 如果字符串以 "xx"开头 (PHP)

jquery - Ajax调用从grails show.gsp保存数据,接收到 “Session is Closed!”异常

java - 未找到 Spring Web 服务类异常

java - "<\div>"<div> 标签内的文本

java - 将变量分配给 HTML 中的值

php - 关闭并重新打开后继续填写 HTML 表单

javascript - JSP 属性 JSON 对象在 Javascript 中删除转义字符

java - 为什么显示的是来自jsp的url却显示/ServletName