我目前正在使用 java web 和 MVC 模式开发一个“玩具”项目。
我目前将 Hibernate 用于 DAO,将 ZK 用于用户界面,同时使用许多控制器类来实现应用程序逻辑。
现在我想添加另一个视图,一个使用 JAX-RS 的 RESTful 接口,我注意到我正在使用框架提供的类来获取 http 上下文。ZK 提供了 session 类:
import org.zkoss.zk.ui.Sessions;
import org.zkoss.zk.ui.Session;
[...]
Session s = Sessions.getCurrent();
s.setAttribute("some_attr", some_object);
同时 JAX-RS (Apache wink) 提供了 Context 注释,您可以使用它来注释 HttpServletRequest 属性:
import javax.ws.rs.core.Context;
import javax.servlet.http.HttpServletRequest; ///< Interface
import javax.servlet.http.HttpSession; ///< Interface
[...]
@Context
HttpServletRequest context;
[...]
HttpSession s = context.getSession();
s.setAttribute("some_attr", some_object);
如何在不使用 ZK 或 JAX-RS 的情况下获取当前上下文,以便使控制器层独立于所使用的视图?