java - 在 tomcat webapp 内部转发 : sessions are not expired

标签 java tomcat forward

我有一个网络服务可以非常简单地转发到位于同一个 Tomcat 容器上的另一个网络应用程序。

private Response forward(
        @Context ServletContext context,
        @Context HttpServletRequest request,
        @Context HttpServletResponse response){
    ServletContext ctx = context.getContext("/myothewebapp");   
    RequestDispatcher dispatcher=ctx.getRequestDispatcher("/test");
    dispatcher.forward(request, response);
    return Response.ok("").build();
}

除此 web 应用程序的 session 未过期外,这按预期工作。在 tomcat 管理器中可以看到,打开的 session 累积得非常快,最多可达数百个。

我不确定为什么在响应已发送后它们会持续。 知道我的前向方法中缺少什么吗?

最佳答案

Why they last when the response is already sent.

为什么您认为发送响应后 session 将失效。

只有在发生 session 超时或您使用以下方式强制使 session 无效时,它才会失效:

Session#invalidate() method

关于java - 在 tomcat webapp 内部转发 : sessions are not expired,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30645626/

相关文章:

objective-c - Objective-C 中的私有(private)方法,在 Xcode 4.3 中我不再需要在我的实现文件中声明它们?

java - java中多个int[][]数组转为single[]字符串数组

java - Apache TomEE - 无法访问 "TomEE GUI"、 "Server Status"、 "Manager App"和 "Host Manager"服务

tomcat - 如何从 Servlet 中以编程方式检测 Tomcat 启动?

java - Java根据用户名进行url重定向

Android 向前兼容

java - 输出到文本文件,控制台为空 - Java

java - 是否可以使用java从远程路径检索文件?

java - 用java中的属性文件的值替换String

tomcat - 如何让 Solr 在 Tomcat 中使用 root 以外的记录器?