对象是已登录的用户,其中包含一些与他相关的对象。我想把数据库的流量控制在最低限度。我需要一个合适的解决方案。我使用jsp代码而不使用scriptlet,使用servlet并通过jpa获取对象。我希望你明白我的意思。
最佳答案
您可以通过setAttribute(...)
方法将对象存储到HttpSession并通过getAttribute(...)
检索它。
所以您的代码(在一个servlet中)看起来应该是这样的:
final String CURRENT_USER_KEY = "CURRENT_USER";
EntityManager em; // somewhere initialized
Integer userid; // somewhere initialized
HttpSession session = httpServletRequest.getSession();
User user = session.getAttribute(CURRENT_USER_KEY);
if(user == null){
User user = em.find(User.class, userId);
session.setAttribute(CURRENT_USER_KEY, user);
}
// perform further actions on your user