是否可以使用keep alive控制器公开控制器,该控制器接收userId \ SessionID并刷新目标用户的会话?
即:
@RequestMapping(value = "/keepalive", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
@ResponseStatus(value = HttpStatus.OK)
public void keepalive(@RequestBody String userIdOrSessionId) {
this.refreshSessionForUser(userIdOrSessionId);
}
答案 0 :(得分:1)
如果您知道会话ID,那么您可以使用该会话ID发送请求(设置JSESSIONID
cookie),并且servlet容器将重置该会话的超时(假设您的意思是“刷新“)。虽然您可以根据您正在使用的实际容器编写自定义代码,但我不知道有任何其他标准方法。
类似的东西:
URLConnection connection = new URL(yourKeepAliveUrl).openConnection();
connection.addRequestProperty("Cookie", "JSESSIONID=<theSessionId>");
connection.connect();
应该这样做。
实际保持活动的URL不必执行任何操作。你只需要一些方法来调用请求。