`

关于sessionid的一些问题

阅读更多

最近在做项目的过程中遇到了一个session id相关的问题,场景是这样的:

服务器端向客户端提供了一个登录接口,有用户名,密码,还有验证码。验证码实际上是一个JSP页面,代码如下:

<%@page import="com.kunlunsoft.jn.action.login.LoginVerifyAction"%>
<%@page import="com.kunlunsoft.jn.utils.VerifyCodeUtil"%>
<%@ page language="java" contentType="text/html; charset=GBK"
    pageEncoding="GBK"%>
<%
	String verifyCode = VerifyCodeUtil.createColor(request, response);
	session.setAttribute("VERIFYCODE", verifyCode);
	out.clear();
	out = pageContext.pushBody();
%>

 在上述JSP页面中,把验证码存储到session中,校验时就从session获取校验码,和客户端上送的校验码进行比较。现在出现一个问题是,从session中获取不到校验码,因为JSP和后台不是同一个session,怎么办呢?

我的方法是使用url重写,如:

http://localhost:8084/ICServer/verifycode.jsp;jsessionid=846BE41ACE68E5F553DF5D9EF331267B

但是这也不好使,因为浏览器会从cookie中去sessionid然后上送到服务器。所以,我禁用了浏览器的cookie就ok了

 

禁用cookie之后,url中指定的sessionid就生效了

 

  • 大小: 39 KB
0
0
分享到:
评论
2 楼 hw1287789687 2013-12-13  
liubey 写道
你这完全是为了解决问题而解决问题啊,为了用你网站还得先禁用cookie

不是的,客户端是android或者ios(不是浏览器),所以不存在cookie的问题。我是做后台的,测试这个登录时才发现的问题,然后拿出来分享一下
1 楼 liubey 2013-12-13  
你这完全是为了解决问题而解决问题啊,为了用你网站还得先禁用cookie

相关推荐

Global site tag (gtag.js) - Google Analytics