我有一个RemoteServiceServlet类,它实现了几种服务(方法)。
所有方法都需要在执行任何操作之前检查会话并获取相应的用户信息。由于该班级有20多种服务方法,因此在每项服务中这样做都是一场噩梦。有没有一种方法可以为所有传入请求自动运行某种会话检查方法?或者我该如何解决这个问题?

这是针对我的情况的示例伪代码。

public class OnboardingServiceImpl extends RemoteServiceServlet implements OnboardingService {

    private String checkSessionAndGetUser(){...}

    public void service1(){
       // check session
       // get user and do something based on the user data
    }

    public void service2(){
       // check session
       // get user and do something based on the user data
    }

    public void service3(){
       // check session
       // get user and do something based on the user data
    }

    ...

    public void service20(){
       // check session
       // get user and do something based on the user data
    }

}


如您所见,service1,service2,...,service 20都需要基于会话获取用户信息,但是我不想为每个服务重复编写代码。任何帮助将不胜感激。

最佳答案

我建议覆盖processCall(RPCRequest rpcRequest)

@Override
public String processCall(RPCRequest rpcRequest) throws SerializationException {
    //your checks here, in case of error:
    //return RPC.encodeResponseForFailedRequest(null, new Exception("Invalid session"));
  // note that you'll have to use a serializable exception type here.

    return super.processCall(rpcRequest);
}

关于java - GWT-如何为RPC Servlet中的所有传入请求设置入口点方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32106380/

10-11 22:44
查看更多