在portlet和ajax中获得相同的httpsession,称为servlet

disbfnqx  于 2021-07-03  发布在  Java
关注(0)|答案(0)|浏览(257)

我想将httpsession中的数据从jspportlet传递到servlet。通过ajax调用从oracle调用的servlet作为页面portlet。
有很多例子,如何做到这一点,但如何传递httpsession数据?
因为(我认为)ajax调用不同于portlet上下文的url(比如 $.post( "/app/servlet", data) ),它找不到原始会话,而是在我尝试访问时创建了一个新会话 request.getSession() .
portlet和servlet位于同一个war应用程序中,当前在jdeveloper、apache proxypass和proxypassreverse中运行,Map到webserver url: http://webserver.local/app ,注册了连接的portlet生产者: http://webserver.local/app/providers/ 我将提供者注册页面上的登录频率设置为“始终”。
我将portlet放在一个随机页面中 http://webserver.local/path/to/page 我认为这就是页面上portlet生成的会话与servlet不相等的原因。
如果在上调用jsp portlet http://webserver.local/app/felvitel.jsp 打开servlet http://webserver.local/app/servlet ,我可以得到相同的会话,所以这就是为什么我确定它的网址问题。
但是portlet必须在页面内部使用,而不仅仅是单独使用,而且我不知道如何Mapservlet url,或者更改cookie以找到相同的会话。
现在我将会话id存储在jsp页面的hidden中: <input type="hidden" id="sessionkey" value="<%=session.getId()%>"></input> …javascript创建一个cookie name="JSESSIONID", value=$("#sessionkey").val(), path=/app 它在工作,servlet得到相同的会话,但我认为这是另一种方式。
我可以从jsp页面修改cookie吗?我试着在饼干和 cookie.setPath("/app");response.addCookie(cookie1); 但是外观没有任何作用,当我读到它时,它必须在其他地方设置,而不是在jsp页面上工作,它必须在头创建时设置。
或者其他解决方案?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题