我在 Liferay 中编写了自定义 servlet,想知道哪个用户页面调用它并知道主题等其他参数。但是请求的属性和 session 字段都是空的。
如何使自定义 servlet 像 portlet 一样接收请求?
谢谢
手动读取 cookie。我想像 Liferay 那样做,即通过使用它的 API。可能吗?
更新 1.
我在一个 WAR 中有一个 portlet 和一个 servlet。我可以像这样从 portlet JSP 中知道我是谁(登录用户):
HttpServletRequest request = (HttpServletRequest)pageContext.getRequest();
ThemeDisplay themeDisplay = (ThemeDisplay)request.getAttribute(WebKeys.THEME_DISPLAY);
themeDisplay.getUser()
现在我想从一个 servlet 做同样的事情。可能吗?
我在自动部署的 eclips 中工作。
最佳答案
您要么必须模仿 Liferay 在 portlet 请求处理中所做的(不推荐),要么将您的 servlet 代码放入 portlet - 这可以是 portlet 的“资源处理” - 在这里您可以完全访问http 请求,并且可以自己做关于流中传输的数据类型的所有事情。
我宁愿推荐这个,因为它会更容易升级。从逻辑的角度来看,Portlet Resource Handler 与 servlet 非常相似。可能还有其他(更可取的)选项,但这是我想到的此类问题。
关于java - 如何在自定义 servlet 中获取 Liferay session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8095301/