我想知道你什么时候想要在JSP中设置以下页面指令:
<%@ page session="false" %>
我知道它会阻止会话对象的创建,但是什么时候需要这样做呢?当JSP不需要访问隐式会话时,它被认为是最佳实践吗?
注意:我之所以要问,是因为它是在这个Spring MVC教程中,我认为springource的人知道他们的东西 - http://blog.springsource.com/2011/01/04/green-beans-getting-started -with -弹簧- MVC /
no.*_*ing 84
一个原因是性能和记忆.如果您有一个不需要参与会话的页面(比如说,about.jsp
或者faq.jsp
),那么在会话中涉及每个JSP的默认行为将会产生创建新会话对象的开销(如果没有已经存在)并且随着更多对象驻留在堆上而增加了内存使用量.
如果单个页面看到来自许多独特用户的高流量并且具有高跳出率,即用户不会继续浏览但在查看该页面后立即离开该站点,该效果将被夸大,该容器将创建新的每个用户的会话对象永远不会再次使用,最终会在超时后进行垃圾收集 - 添加对象创建,内存使用和垃圾收集,而不会给你任何实际价值.
实际上我的应用程序中有一个真实的场景用于它的用法.在我们的应用程序面前,我们有Squid作为反向代理.squid服务器设置为轮询托管我们应用程序的所有tomcat实例,以验证服务器是否正常运行,如果不是,Squid将故障转移到我们集群中的另一台服务器.
从Squid到我们的应用程序的实际轮询设置为轮询应用程序中的特定页面.由于Squid的轮询实际上并不是一个浏览器,它不能持有一个会话,这意味着每次轮询到服务器页面都会有tomcat创建一个Squid无法持有引用的会话.我们添加<%@ page session="false" %>
指令,以便不在每个轮询上创建会话.如果我们不使用此指令,我们将无缘无故地在4小时内创建数千个会话.
归档时间: |
|
查看次数: |
53478 次 |
最近记录: |