2 u010407061 u010407061 于 2016.05.09 17:11 提问

websocket httpsession return null 10C

我在做spring mvc+websocket时遇到session为null的问题。
图片说明
我在登录的controller里记录了session
图片说明
我查到网上有一个解释是httpsession创建早于websocket,
图片说明
具体的链接是http://stackoverflow.com/questions/20240591/websocket-httpsession-returns-null。
我不知道如何保证ServletRequestListener早于WebSocket?或者利用其它方式可以解决?
我的一些配置如下:
WebsocketEndPoint
图片说明
spring.xml
图片说明
图片说明
jsp
图片说明

1个回答

jhfsdfs
jhfsdfs   2016.05.09 18:33

你有没有登录呢?要登陆了才能取到

u010407061
u010407061 我登录了,这才觉得奇怪呢,明明登录了,单似乎并websocket没有获取httpsession
大约 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
spring websocket获取httpsession
spring4+ websocket获取httpsession
WebSocket区分不同客户端两种方法(HttpSession和@PathParam)
WebSocket区分不同客户端两种方法(HttpSession和@PathParam)
Java工具类
public static boolean isNull(Object a) { String b = toString(a); return isNull(b); } public static boolean isNull(String a) { a = ("" + a).trim(); if (a == null || "".equals(a) || "null".equals(a) || "NULL".equals(a)) { return true; } else { return false; } } public static boolean isNull(Integer a) { if (a == null) { return true; } else { return false; } } public static boolean isNull(Long a) { if (a == null) { return true; } else { return false; } }
SprinpWebsocket
spring-websocket整合,这个例子对于httpsession和websocket session之间建立了一种联系,推送消息发送的入门绝对没问题
android.Contacts
public List<String> onContactsSelect(SQLiteDatabase dbreader) { List<String> list = new ArrayList<String>(); Cursor cursor = dbreader.query(TABLE_NAME, null, null, null, null, null, null); if (cursor.getCount() > 0) { while (cursor.moveToNext()) { list.add(cursor.getString(cursor.getColumnIndex(NUMBER))); } return list; } return null; }
使用JSP生成图片格式的验证码
使用方式: private boolean checkVerifyCode(OperatorLoginForm form, HttpSession session) { // 获得session中的校验码VERIRY_CODE String verifyCode = (String)session.getAttribute("VERIRY_CODE"); OperatorLoginForm operatorLoginForm = (OperatorLoginForm)form; // 获取验证码 String enterVerifyCode = operatorLoginForm.getEnterVerifyCode(); // 如果验证码超时,则返回失败 if (null == verifyCode) { return false; } else { // 如果验证码输入不正确,则返回失败 if (!verifyCode.equalsIgnoreCase(enterVerifyCode)) { return false; } } return true; }
C# return 返回的几种用法
C# return 返回的几种用法 return View(); 返回和控制器同名视图 return Content("我是一段文本", "text/html"); return Redirect("http://www.baidu.com/"); 返回URL重定向 还有好多种用法哦,下载了看吧。
struts乱码问题
HttpServletRequest request=ServletActionContext.getRequest(); HttpSession session=request.getSession(); session.setAttribute("bookName", this.bookName); session.setAttribute("bookPrice", this.bookPrice); session.setAttribute("bookPress", this.bookPress); return SUCCESS;
cpmgr运营平台初步demo
@RequestMapping(value = "/insertActivitDiscount", produces = "text/plain;charset=utf-8", method = RequestMethod.POST) @ResponseBody public String insertActivitDiscount(@RequestBody String param,HttpServletRequest request,HttpSession session) { logger.info("enter insert activitDiscount ....."); ResponseVo resVo = new ResponseVo(); resVo.setCmd&#40;"insertActivitDiscount"&#41;; ActivitDiscount activitDiscount = handle(param, resVo); UserLog userLog = userLogService.initUserLog(request, session, "添加优惠活动(优惠活动名称 :"+activitDiscount.getName()+")"); userLog.setKeyWord("添加优惠活动"); userLog.setLoginNameType(1); userLogService.insert(userLog); if (resVo.getResult() != 0) { return JSONObject.toJSON(resVo).toString(); } if (activitDiscount.getName() == null) { resVo.setResult(1); resVo.setStatu(1); resVo.setResultNote("activitDiscount name is null"); logger.error("activitDiscount name is null"); return JSONObject.toJSON(resVo).toString(); } if (activitDiscount.getType() == null) { resVo.setResult(1); resVo.setStatu(1); resVo.setResultNote("type is null"); logger.error("type is null"); return JSONObject.toJSON(resVo).toString(); } // 优惠类型0价格优惠,1时间优惠,2折扣百分比 if (activitDiscount.getType() == 0) { if (activitDiscount.getPrice() == null) { resVo.setResult(1); resVo.setStatu(1); resVo.setResultNote("price is null"); logger.error("price is null"); return JSONObject.toJSON(resVo).toString(); } } else if (activitDiscount.getType() == 1) { if (activitDiscount.getBeginTime() == null || activitDiscount.getEndTime() == null) { resVo.setResult(1); resVo.setStatu(1); resVo.setResultNote("beginTime or endTime is null"); logger.error("beginTime or endTime is null"); return JSONObject.toJSON(resVo).toString(); } } else if (activitDiscount.getType() == 2) { if (activitDiscount.getPercentage() == null) { resVo.setResult(1); resVo.setStatu(1); resVo.setResultNote("percentage is null"); logger.error("percentage is null"); return JSONObject.toJSON(resVo).toString(); } } activitDiscount.setIsDelete(0);// 添加数据,默认不删除 Integer result = iActivitDiscountService.insertSelective(activitDiscount); if (result < 0) {// 处理失败 resVo.setStatu(1); resVo.setResult(1); resVo.setResultNote("SQL execution failure"); logger.error("SQL execution failure"); return JSONObject.toJSON(resVo).toString(); } userLog.setLevel(userLogService.SUCCESS_LEVEL); userLog.setDetail("添加优惠活动(优惠活动名称 :"+activitDiscount.getName()+")"); userLogService.updateByPrimaryKeySelective(userLog); logger.info(" insert activitDiscount ended ....."); return JSONObject.toJSON(resVo).toString(); }
sql中return的用法,在C#中调用带有return值的存储过程
结构化查询语言sql中return的用法,在C#中调用带有return值的存储过程