我在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。
答案 0 :(得分:3)
你要么必须模仿Liferay在portlet请求处理中所做的事情(不推荐),要么将你的servlet代码放入portlet中 - 这可以是portlet的“资源处理” - 在这里你可以完全访问http请求,可以自己完成关于流中传输的数据类型的所有事情。
我宁愿推荐这个,因为它会更容易升级。从逻辑角度来看,Portlet资源处理程序与servlet非常相似。可能还有其他(更可取的)选项,但这是我想到的这类问题。