使用HttpServletRequest创建一个cookie?

bob*_*e01 5 java cookies websphere-portal

我创建了一个RenderingPluginfor,用于在WebSphere Portal向客户端发送标记之前调用服务器端.插件循环遍历所有cookie,如果找不到'test',我想设置该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
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Ahm*_*d M 1

您是否尝试过使用 javascript 代码来设置 cookie?

<script>
document.cookie = "test=1;path=/";
</script>
Run Code Online (Sandbox Code Playgroud)

您将其作为您提供给作者的内容的一部分发送rpm.getWriter(),它将由浏览器执行。