android 手机注册发送短信失败例子。

本文探讨了使用session和cookie进行跨域存储验证码时遇到的问题,并提供了具体的代码实现方案,包括设置和读取cookie的方法。

session 和cookie 跨域存储验证码失败,悲剧。

//HttpClientUtil.addCookie(response, phoneId, format.format(new Date()) +"," + validateCode, 1 * 24 * 60 * 60);
    			//Cookie phoneCook = HttpClientUtil.getCookieByName(request, phoneId);
				//添加手机号码注册验证功能
				//System.out.println("eeeeeeeeee" + phoneCook.getValue());



/*Cookie phoneCook = HttpClientUtil.getCookieByName(request, emailOrPhone);
					//添加手机号码注册验证功能
					System.out.println("eeeeeeeeee" + phoneCook.getValue());
					String myPhoneVc = String.valueOf(captcha); // 手机验证码
					SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
					if (phoneCook != null && !StringUtil.isNull(myPhoneVc)) {
						String str[] = phoneCook.getValue().split(",");
						Date beginTime = format.parse(str[0]);
						long minus = new Date().getTime()- beginTime.getTime();
						if (minus / 1000 / 60 < CommonConstant.MEMBER_PHONE_DEAD_TIME) {// 五分钟失效
							if (myPhoneVc != null && myPhoneVc.equals(str[1])) {
								phoneCook.setMaxAge(0);//清除cook值
								mao.setMemberPhone(emailOrPhone);
							} else {
								result = "phoneValidateNoEquels"; // 与发送的验证码不一致
								out.print(result);
								return null;
							}
						} else {
							result = "phoneValidateNo"; // 失效
							out.print(result);
							return null;
						}
					} else {
						result = "phoneValidateNo"; // 失效
						out.print(result);
						return null;
					}*/


封装方法

/**
	 * 设置cookie
	 * @param response
	 * @param name  cookie名字
	 * @param value cookie值
	 * @param maxAge cookie生命周期  以秒为单位
	 */
	public static void addCookie(HttpServletResponse response,String name,String value,int maxAge){
	    Cookie cookie = new Cookie(name,value);
	    cookie.setPath("/");
	    cookie.setDomain(".localhost");// 这里可以替换成自己的域名如.vipshequ.com
	    if(maxAge>0)  cookie.setMaxAge(maxAge);
	    response.addCookie(cookie);
	    System.out.println("eeeeeeeeeeee" + name);
	    System.out.println("ffffffffff" + value);
	}
	/**
	 * 根据名字获取cookie
	 * @param request
	 * @param name cookie名字
	 * @return
	 */
	public static Cookie getCookieByName(HttpServletRequest request,String name){
	    Map<String,Cookie> cookieMap = ReadCookieMap(request);
	    if(cookieMap.containsKey(name)){
	        Cookie cookie = (Cookie)cookieMap.get(name);
	        return cookie;
	    }else{
	        return null;
	    }   
	}
	/**
	 * 将cookie封装到Map里面
	 * @param request
	 * @return
	 */
	private static Map<String,Cookie> ReadCookieMap(HttpServletRequest request){  
	    Map<String,Cookie> cookieMap = new HashMap<String,Cookie>();
	    System.out.println("22222" +request);
	    System.out.println("33333333333" +request.getCookies());
	    Cookie[] cookies = request.getCookies();
	    if(null!=cookies){
	    	System.out.println("dddddddddddd");
	        for(Cookie cookie : cookies){
	        	System.out.println("fffffffff");
	            cookieMap.put(cookie.getName(), cookie);
	        }
	    }
	    return cookieMap;
	}



评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值