繁体   English   中英

如何在自定义servlet中获取Liferay会话?

[英]How to obtain Liferay session in custom servlet?

我在Liferay中编写了自定义servlet,想要知道哪个用户页面调用它并知道其他参数如theme。 但是请求的属性和会话字段都是空的。

如何使自定义servlet像portlet一样接收请求?

谢谢

PS我不想使用这个解决方案https://www.everit.biz/web/guest/blog/-/blogs/getting-current-liferay-user-in-a-standalone-webapp?_33_redirect=/web /客/博客

它手动读取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资源处理程序与servlet非常相似。 可能还有其他(更可取的)选项,但这是我想到的这类问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM