Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsp Tomcat对特定请求禁用/销毁或重用会话创建 背景_Jsp_Tomcat_Tomcat7_Session Management - Fatal编程技术网

Jsp Tomcat对特定请求禁用/销毁或重用会话创建 背景

Jsp Tomcat对特定请求禁用/销毁或重用会话创建 背景,jsp,tomcat,tomcat7,session-management,Jsp,Tomcat,Tomcat7,Session Management,我使用Tomcat提供一个.jsp页面,负载平衡器可以调用该页面,以确定承载应用程序的给定服务器是否在线并能够为请求提供服务 jsp只是向给定的应用程序发出一个请求,看看它是否能够响应——向负载平衡器发送一个适当的响应 问题是,对this.jsp的每个请求都会在Tomcat中创建一个会话,该会话会持续一段时间——可能有许多负载平衡器请求该页面,从而导致会话的累积,从而消耗资源 问题: 我是否能够将Tomcat配置为执行以下任一操作 不创建用于处理特定请求的会话 重用单个会话或已创建的会话来处理

我使用Tomcat提供一个.jsp页面,负载平衡器可以调用该页面,以确定承载应用程序的给定服务器是否在线并能够为请求提供服务

jsp只是向给定的应用程序发出一个请求,看看它是否能够响应——向负载平衡器发送一个适当的响应

问题是,对this.jsp的每个请求都会在Tomcat中创建一个会话,该会话会持续一段时间——可能有许多负载平衡器请求该页面,从而导致会话的累积,从而消耗资源

问题: 我是否能够将Tomcat配置为执行以下任一操作

  • 不创建用于处理特定请求的会话
  • 重用单个会话或已创建的会话来处理特定请求
  • 立即销毁为特定请求创建的会话,或为该会话提供非常短的生存期
具体请求是指我希望从Tomcat提供的.jsp

我正在使用Tomcat7


感谢您的帮助

将会话超时时间降低到1分钟怎么样

<session-config>
    <session-timeout>1</session-timeout>
</session-config>

1.

这里有两个选项

首先,您可以简单地切换到使用静态文件而不是动态JSP页面。如果服务器正在接受请求,这可能与运行JSP页面一样有效。。。除非JSP探测某些事物以确定应用程序的运行状况

另一种方法是禁用该JSP的会话生成。默认情况下,除非另行指定,否则在访问JSP时会创建会话。以下是如何做到这一点:

<%@page
  session="false"
  ..
%>
... rest of your page

... 页面的其余部分
现在您的JSP页面甚至不会生成会话,所以您不必处理它们或类似的事情


最后,如果出于某种原因需要在该JSP中使用会话,您确实可以为特定类型的所有客户机使用单个会话。您可以使用。只需确保将
crawlerUserAgents
字符串设置为与负载平衡器用于其探测的任何内容相匹配。

因此,在进一步挖掘(并更详细地阅读关于tomcat如何工作的问题)之后,适合我的情况的解决方案是在.jsp文件中调用
session.invalidate()
,这比我想象的要简单得多(我不熟悉tomcat配置)>但是,如果有办法重用会话或不为特定请求创建会话,问题仍然存在(如果可能的话),Christopher对您的问题给出了完全有效的答案。我想补充一个问题:你有没有发现这个额外的内存需求是一个问题?对我来说,这听起来很像初步优化。虽然Christopher的答案很简单,但我要提醒大家,要养成优化某些未被证明是实际问题的东西的习惯。最有可能出现的实际瓶颈可能是在空会话之前触发的。