gpt4 book ai didi

java - 在 Liferay Filter Hook 中访问 PortletSession (ApplicationScope)

转载 作者:行者123 更新时间:2023-12-01 11:25:18 25 4
gpt4 key购买 nike

我需要在某些页面上添加一个过滤器来检查是否设置了某些 session 属性。

我想要实现的是:用户尝试直接导航到页面。在该页面上,有 3 个需要 SessionVariables 的 Portlet。这些是由上一页设置的。因此,如果这些变量不可用,则必须重定向到上一页。

所以我想添加一个过滤器钩子(Hook),所以该类实现 Filter

public class SampleFilter implements Filter {

@Override
public void destroy() {
/* Destroy method*/
}

@Override
public void doFilter(
ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) {

/* I need to access the PortletSession here! */

filterChain.doFilter(servletRequest, servletResponse);
}

@Override
public void init(FilterConfig filterConfig) {
/*Method to init filter..*/
}

}

是否可以在 doFilter() 方法中检查我使用 session.setAttribute("name", value, PortletSession.APPLICATION_SCOPE); 设置的变量

最佳答案

好的,我发现了这个:

由于 session 属性的范围为“APPLICATION_SCOPE”,因此可以通过 HttpSession 访问它们:示例

public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) {

HttpServletRequest httpServletRequest = (HttpServletRequest) servletRequest;
HttpSession session = httpServletRequest.getSession();
log.debug(session.getAttribute("applicationScopedName"));

filterChain.doFilter(servletRequest, servletResponse);
}

仅此而已!

关于java - 在 Liferay Filter Hook 中访问 PortletSession (ApplicationScope),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30862643/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com