如何在付费http中传递会话

如何在付费http中传递会话,http,session,gwt,client-server,httprequest,Http,Session,Gwt,Client Server,Httprequest,我有一份申请书。 我想在不使用cookies的情况下传递会话id。你能帮我写客户端和服务器代码吗 过程是 1) 用户连接 2) 服务器生成会话ID并发送回客户端 3) 用户现在使用会话ID连接,然后在服务器上调用一个函数,如何将此会话ID传递给rpc调用(在客户端),然后在服务器端如何恢复会话 感谢您的回答每当servlet在servlet中执行session.getSession()或session.getSession(true)代码时,它都会为用户创建会话 所以,根据它的说法,若您不想从客

我有一份申请书。 我想在不使用cookies的情况下传递会话id。你能帮我写客户端和服务器代码吗

过程是 1) 用户连接 2) 服务器生成会话ID并发送回客户端 3) 用户现在使用会话ID连接,然后在服务器上调用一个函数,如何将此会话ID传递给rpc调用(在客户端),然后在服务器端如何恢复会话


感谢您的回答

每当servlet在servlet中执行session.getSession()或session.getSession(true)代码时,它都会为用户创建会话

所以,根据它的说法,若您不想从客户端访问cookie,并且想在服务器上禁用特性而不是启用HttpOnly属性,那个么服务器会通知浏览器,并且它会创建一个JSESSIONID

启用HttpOnly属性后,您不再需要从浏览器获取会话id信息。现在您必须对服务器进行RPC调用以获取会话id


客户端代码:

sessionService.getSessionServer(new AsyncCallback<String>() {
                            public void onFailure(Throwable caught) {
                                // Show the RPC error message to the user
                            }
                            public void onSuccess(String sessionId){
                                Window.alert("sessionId->"+sessionId);
                            }
                        });
public class SessionServiceImpl extends RemoteServiceServlet implements
        SessionService {

    public String getSessionServer(String input) throws IllegalArgumentException {
        HttpServletRequest request = this.getThreadLocalRequest();      
        HttpSession session = request.getSession(); //or request.getSession(true);
        return session.getId();
        }

在web服务器上启用会话。然后,在服务servlet请求中,您可以:

HttpSession session = request.getSession();
String id = session.getId();
请注意,您可以向会话添加更多属性。例如,对用户进行身份验证时,可以在身份验证调用中将用户对象或用户ID写入会话:

session.setAttribute("user", user);
然后,在所有后续调用中,您可以在处理该属性之前验证该属性是否正确。如果没有,您可以抛出一个异常,让您的GWT客户机知道出了问题。然后,客户端可以将用户重定向到登录页面,或者让用户重新加载应用程序。例如:

if (session == null || session.getAttribute("user") == null) {
     throw new LoginException();
}

在客户机上:从服务器上传递会话的gwt代码是什么?那么,将会话id放入rpc调用的代码是什么?您是否编写了代码来实现它?您使用的是MVP还是核心GWT结构?那么,我如何将会话从客户端发送到服务器?我使用的是核心gwt和RPC。代码对于服务器到客户端来说是可以的,但是对于客户端到服务器呢?过程是1)用户连接2)服务器生成会话ID并发送回客户端(这是您的代码,没问题)3)用户现在使用会话ID连接,然后在服务器上调用一个函数,如何将此会话ID传递给rpc调用(在客户端),然后在服务器端如何恢复会话?