我创建了一个 RenderingPlugin
,用于 WebSphere Portal
,在将标记发送到客户端之前调用服务器端。该插件循环遍历所有 cookie,如果未找到“测试”,我想设置该 cookie。
我知道这可以通过 HttpServletResponse
实现,但 RenderingPlugin
无法访问该对象。它只有一个 HttpServletRequest
。
还有其他方法吗?
public class Request implements com.ibm.workplace.wcm.api.plugin.RenderingPlugin {
@Override
public boolean render(RenderingPluginModel rpm) throws RenderingPluginException {
boolean found = false;
HttpServletRequest servletRequest = (HttpServletRequest) rpm.getRequest();
Cookie[] cookie = servletRequest.getCookies();
// loop through cookies
for (int i = 0; i < cookie.length; i++) {
// if test found
if (cookie[i].getName().equals("test")) {
found = true;
}
}
if (!found){
// set cookie here
}
}
}
最佳答案
您是否尝试过使用 javascript 代码来设置 cookie?
<script>
document.cookie = "test=1;path=/";
</script>
您将此作为您提供给 Writer rpm.getWriter()
的内容的一部分发送,它将由浏览器执行。
关于java - 使用 HttpServletRequest 创建 cookie?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29942270/