使用AJAX进行tomcat超时配置

时间:2012-07-10 17:52:25

标签: java ajax tomcat configuration timeout

正确设置了web.xml中的

会话超时设置,并且tomcat以指定值超时。问题是超时是如何发生的。

导航到新页面时会重置超时,但是激活浏览器(通过密钥库或鼠标单击)或进行AJAX调用不会重置超时。我尝试了一些tomcat属性无济于事,是否有一个属性可以处理这种类型的超时配置?

提前谢谢

2 个答案:

答案 0 :(得分:0)

您是否尝试删除server.xml文件中的connectionTimeout参数?

即:如果你有这个:

<Connector port="8080" protocol="HTTP/1.1"  connectionTimeout="20000" URIEncoding="UTF-8"            redirectPort="8443" />

将其更改为:

<Connector port="8080" protocol="HTTP/1.1"  connectionTimeout="<A VERY LARGE NUMBER>" URIEncoding="UTF-8"            redirectPort="8443" />

或:

<Connector port="8080" protocol="HTTP/1.1" URIEncoding="UTF-8"            redirectPort="8443" />

你在server.xml文件中尝试过类似的东西吗?

答案 1 :(得分:0)

HttpSession是服务器端对象,因此Web浏览器中的键击和鼠标事件不会自动重置超时。但是,您可以监视客户端上的键盘和鼠标事件,并定期对服务器进行RPC调用,以使会话保持活动状态。

但是你也说Ajax调用不会重置服务器上的会话超时。这很奇怪,因为我已经做了很多次,它确实为我重置了它。您使用的是GWT RPC还是其他序列化机制?

我不确定,但也许您还需要从Ajax调用实现中访问会话,以便重置超时,例如调用getThreadLocalRequest().getSession()(如果使用GWT RPC)。