Java tomcat webapp内部转发:会话未过期

Java tomcat webapp内部转发:会话未过期,java,tomcat,forward,Java,Tomcat,Forward,我有一个Web服务,它可以非常简单地转发到位于同一Tomcat容器上的另一个Web应用 private Response forward( @Context ServletContext context, @Context HttpServletRequest request, @Context HttpServletResponse response){ ServletContext ctx = context.getContext("/

我有一个Web服务,它可以非常简单地转发到位于同一Tomcat容器上的另一个Web应用

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();
}
除了此webapp的会话未过期之外,这一切都可以正常工作。在tomcat管理器中,您可以看到,打开的会话积累得相当快,多达数百个

我不知道为什么在已经发送响应的情况下它们会持续。 你知道我的前进方法缺少什么吗

为什么它们在响应已发送时持续

为什么您认为在发送响应后会话将无效

只有在会话超时或您使用以下命令强制使会话无效时,它才会失效:

Session#invalidate() method

转发请求不会使会话无效…除非您选择1,否则会话不会过期。关闭浏览器2。手动终止会话3。如果设置了会话超时,请等待。
session.invalidate()
可用于使会话无效…
session=request.getSession(true)
可以用来获取一个新的sessionOk,但是如果我只是用通常的返回响应来终止请求,那么会话怎么不会累积呢;?每次你转发到另一个应用程序时,都会创建一个新会话,它不会在应用程序之间共享会话…当你返回时,你仍然在同一个应用程序中,因此不会创建新会话…因为如果我仅使用通常的返回响应终止请求,webapp会话不会累积。ok().build();为什么它会累积?如果你只是返回,你仍然在同一个应用程序中,不会为它创建新会话!