如何从Java过滤器调用Spring控制器

如何从Java过滤器调用Spring控制器,java,spring,spring-mvc,model-view-controller,Java,Spring,Spring Mvc,Model View Controller,这是我的场景:我有两个应用程序,都使用SpringMVC。其中一个有一个过滤器类,另一个有一个控制器类。这个要求有点奇怪,当向包含过滤器的应用程序发出请求时,这个过滤器应该调用另一个应用程序中的控制器以“保持活动”会话,因此我需要从过滤器类a控制器类调用,并将JSESSIONID作为参数传递。有什么建议吗 谢谢 最后,我使用实现了我的目标,过滤器对控制器的调用如下: HttpHeaders httpHeaders = new HttpHeaders(); http

这是我的场景:我有两个应用程序,都使用SpringMVC。其中一个有一个过滤器类,另一个有一个控制器类。这个要求有点奇怪,当向包含过滤器的应用程序发出请求时,这个过滤器应该调用另一个应用程序中的控制器以“保持活动”会话,因此我需要从过滤器类a控制器类调用,并将JSESSIONID作为参数传递。有什么建议吗


谢谢

最后,我使用实现了我的目标,过滤器对控制器的调用如下:

        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.add("Cookie", "JSESSIONID=" + sessionId);

        HttpEntity<String> httpEntity = new HttpEntity<String>(null, httpHeaders);

        String controllerUrl = CONTROLLER_URL;
        ListenableFuture<ResponseEntity<String>> responseEntityListenableFuture = restTemplate.exchange(controllerUrl, HttpMethod.GET, httpEntity, String.class);

        responseEntityListenableFuture.addCallback(new ListenableFutureCallback<ResponseEntity<String>>() {
            @Override
            public void onSuccess(ResponseEntity<String> stringResponseEntity) {
                // Nothing to do
            }

            @Override
            public void onFailure(Throwable throwable) {
                // Handle your error
            }
        });
HttpHeaders-HttpHeaders=新的HttpHeaders();
添加(“Cookie”、“JSESSIONID=“+sessionId”);
HttpEntity HttpEntity=新的HttpEntity(空,HttpHeader);
字符串controllerUrl=控制器URL;
ListenableFuture responseEntityListenableFuture=restTemplate.exchange(controllerUrl,HttpMethod.GET,httpEntity,String.class);
responseEntityListenableFuture.addCallback(新ListenableFutureCallback(){
@凌驾
成功时的公共无效(ResponseEntity stringResponseEntity){
//无事可做
}
@凌驾
失败时的公共无效(可丢弃){
//处理你的错误
}
});

您希望一个web应用程序中的过滤器调用另一个web应用程序中的控制器吗?我认为您需要提供更多关于您正试图实现的目标的信息,因为您的方法可能不是最合适的。您试图弥合两个不同的差距:(1)过滤器和servlet/控制器并不意味着直接通信(2)web容器中的WebApp通常是隔离的(通过单独的类加载器),因此交互需要特殊的部署。我有一种强烈的感觉,你不是真的想去那里…要求是什么?