如何在 REST Jersey Web 应用程序中创建、管理、关联会话
Posted
技术标签:
【中文标题】如何在 REST Jersey Web 应用程序中创建、管理、关联会话【英文标题】:How to create, manage, associate a session in REST Jersey Web Application 【发布时间】:2014-04-18 03:28:33 【问题描述】:html5 UI 连接到后端(REST Jersey 到业务逻辑到 Hibernate 和 DB)。 我需要为每个用户登录创建并维护一个会话,直到用户注销。
能否请您指导我可以使用哪些技术/API。 是否也需要在 REST Client 端处理某些事情..
【问题讨论】:
【参考方案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 Guide 或Jersey User Guide,因为两者都是极好的资源。
【讨论】:
感谢您的回答。假设我有一个映射多个模块的用户对象。如何将会话绑定到用户对象。 您能解释一下如何将会话绑定到用户对象吗?你想达到什么目标? 我的意思是,我从 HTML5 Web UI 登录。然后我想将此用户对象关联(绑定)到会话。绑定到 Session 的这个 User 对象将在内部各处使用。也就是说,每当我使用 Uder 对象时,都应该将相应的会话 id 标记到它。 有这方面的演示或教程吗?如果有教程会更有帮助以上是关于如何在 REST Jersey Web 应用程序中创建、管理、关联会话的主要内容,如果未能解决你的问题,请参考以下文章
jersey rest web 服务与 Activemq 中间件集成
Spring 4 vs Jersey 用于 REST Web 服务
ajax 调用 jersey rest web 服务中的 Access-Control-Allow-Origin
使用 Jersey 和 Apache Tomcat 构建 RESTful Web 服务