html文件发给别人丢失信息,静态html请求session丢失

一个临时推广的纯静态html活动页面,与原有项目分离,现活动页面要记录当前报名用户,并给当前报名用户一次抽奖机会,大致情况就是这样,程序如下:

public boolean checkChestCnts(HttpServletRequest request,Integer activeId,String account){

//当前报名信息写入session

HttpSession session = request.getSession();

session.setAttribute("activeId", activeId);

session.setAttribute("account", account);

Statistics stat = getByActiveIdAndAccount(activeId, account);//查询用户

if(null == stat){

stat = new Statistics();

stat.setActiveId(activeId);

stat.setAccount(account);

stat.setLotteryCnt(1);

statisticsDao.addStatistics(stat);//存入报名信息

return true;

}

return false;

}

/**

*检查并设置报名用户抽奖次数

*/

@RequestMapping("checkChestCnt")

public void checkChestCnts(HttpServletRequest request,HttpServletResponse response,Statistics statistics){

boolean bool = statisticsBo.checkChestCnts(request, statistics.getActiveId(), statistics.getAccount());

String data = statistics.getJsonpCallback()+ "({\"result\":"+bool+"})";

try {

response.getWriter().write(data);

} catch (IOException e) {

e.printStackTrace();

}

}

/**

* 获取当前报名用户可抽奖次数

*/

@RequestMapping("getChestCnt")

public void getChestCnts(HttpServletRequest request,HttpServletResponse response,Statistics statistics){

HttpSession session = request.getSession();

Object accountObj = session.getAttribute("account");

//此处打印accountObj的值是null,checkChestCnt.do请求已先执行

//.............

}

静态页面用的是ajax的jsonp的方式请求服务端,account也已设置到session当中,在getChestCnt.do的请求中获取不到,当时怀疑getChestCnt.do请求中的session已经不是checkChestCnt.do中设置的那个session,html页面发生两个请求中的session已不在一个回话底下,如是在两个请求的响应头中设置P3P协议就可以成功获取到值

response.setHeader("P3P","CP=CAO PSA OUR");

//response.setHeader("P3P","CP='IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT'");

这个应该是和Iframe跨域session丢失是一样的问题,欢迎大伙提出不同见解。顺带贴一句网上找到的另一个设置,留作参考 response.setHeader("Access-Control-Allow-Origin" , "*" );//设置为*只是用来解决post请求跨域的问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值