【问题标题】:How to create, manage, associate a session in REST Jersey Web Application如何在 REST Jersey Web 应用程序中创建、管理、关联会话
【发布时间】:2014-04-18 03:28:33
【问题描述】:

HTML5 UI 连接到后端(REST Jersey 到业务逻辑到 Hibernate 和 DB)。 我需要为每个用户登录创建并维护一个会话,直到用户注销。

能否请您指导我可以使用哪些技术/API。 是否也需要在 REST Client 端处理某些事情..

【问题讨论】:

    标签: java html rest session web-applications


    【解决方案1】:

    将 JAX-RS 用于 RESTful Web 服务相当简单。这是基础知识。您通常通过JAX-RS annotations 定义一个或多个服务类/接口来定义您的 REST 操作,如下所示:

    @Path("/user")
    public class UserService {
        // ...
    }
    

    您可以通过这些注释将对象自动注入到您的方法中:

    // Note: you could even inject this as a method parameter
    @Context private HttpServletRequest request;
    
    @POST
    @Path("/authenticate")
    public String authenticate(@FormParam("username") String username, 
            @FormParam("password") String password) {
    
        // Implementation of your authentication logic
        if (authenticate(username, password)) {
            request.getSession(true);
            // Set the session attributes as you wish
        }
    }
    

    HTTP Sessions 可以像往常一样通过getSession()getSession(boolean)HTTP Request 对象访问。其他有用的注释是@RequestParam@CookieParam 甚至@MatrixParam 等等。

    如需更多信息,您可能需要阅读RESTEasy User GuideJersey User Guide,因为两者都是极好的资源。

    【讨论】:

    • 感谢您的回答。假设我有一个映射多个模块的用户对象。如何将会话绑定到用户对象。
    • 您能解释一下如何将会话绑定到用户对象吗?你想达到什么目标?
    • 我的意思是,我从 HTML5 Web UI 登录。然后我想将此用户对象关联(绑定)到会话。绑定到 Session 的这个 User 对象将在内部各处使用。也就是说,每当我使用 Uder 对象时,都应该将相应的会话 id 标记到它。
    • 有这方面的演示或教程吗?如果有教程会更有帮助
    猜你喜欢
    • 2013-01-20
    • 2023-03-12
    • 2020-04-01
    • 2012-07-03
    • 2018-03-03
    • 2014-03-08
    • 1970-01-01
    • 2016-01-27
    • 2023-03-13
    相关资源
    最近更新 更多