java - 如何在自定义 servlet 中获取 Liferay session ?

标签 java session tomcat servlets liferay

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

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

谢谢

附言我不想使用此解决方案 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 中工作。

最佳答案

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

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

关于java - 如何在自定义 servlet 中获取 Liferay session ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8095301/

相关文章:

java - 如何在没有配置的情况下为自定义登录页面使用spring boot security?

java - 我正在将 SpringMVC 用于 Web 应用程序,并将 sessionFactory 用于 Hibernate。以下是我正在使用的 pom.xml

java - 如何在 Jetty 中禁用服务器缓存

java - 为什么我们需要在 hibernate 状态下刷新?

eclipse - Servlet 在 Eclipse 中工作,但不能在我的 tomcat 服务器中工作

java - 将 JAVA 库重定位到 Tomcat Lib 文件夹后出现的问题

java - 使用 Spring Boot 负载测试 tomcat 7 时出现连接异常

java - 分解文件并用java重写它

java - 通过 WiFi-Direct 在两个 Android 设备之间发送一个字符串

javascript - Backbone.js、Rest API 和匿名 session