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

时间:2011-11-11 14:23:03

标签: java session tomcat servlets liferay

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

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

由于

P.S。我不想使用此解决方案https://www.everit.biz/web/guest/blog/-/blogs/getting-current-liferay-user-in-a-standalone-webapp?_33_redirect=/web/guest/blog

手动读取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。

1 个答案:

答案 0 :(得分:3)

你要么必须模仿Liferay在portlet请求处理中所做的事情(不推荐),要么将你的servlet代码放入portlet中 - 这可以是portlet的“资源处理” - 在这里你可以完全访问http请求,可以自己完成关于流中传输的数据类型的所有事情。

我宁愿推荐这个,因为它会更容易升级。从逻辑角度来看,Portlet资源处理程序与servlet非常相似。可能还有其他(更可取的)选项,但这是我想到的这类问题。