NutzCN Logo
问答 session 数据丢失
发布于 3347天前 作者 javanan 2765 次浏览 复制 上一个帖子 下一个帖子
标签: session mvc

请求,,发送验证码到手机, 把验证码写到 session
@At("/sendAuth")
@POST
public int sendAuth(@Param("telephone") String phone,
HttpServletRequest request, HttpSession session) {
String authCode = RandomAuthCode.getAuthCode();
int code = 600;
BufferedReader in = null;
String statu;

    //session=Mvcs.getActionContext().getRequest().getSession();
    try {
       statu = SendSMS.send(phone, java.net.URLEncoder.encode(
          String.format(SMSContrast.codeorder, authCode), "utf-8"));
       // authCode写入session
       if (Integer.parseInt(statu) <= 0) {
         return 700;
       }
       session.setAttribute("recommedCode", authCode);
       session.setAttribute("recommender", phone);
       log.info("send-------------" + request.getRequestedSessionId());
    } catch (UnsupportedEncodingException e) {
       return 700;
    }
    return code;
}

前段输入验证码---------$post请求,,
验证接口如下,,,,,,发现从 刚刚session写入的值, 取出的 值为空,,
@At("/action")
@POST
public Map<String, String> saveRecommender(
@Param("recommenderName") String customName, HttpSession session,
@Param("recommenderPhone") String customPhone,
HttpServletRequest request, @Param("barberName") String barberName,
@Param("authCode") String authCode,
@Param("barberPhone") String barberPhone) {
//session=Mvcs.getActionContext().getRequest().getSession();
Map<String, String> map = new HashMap<String, String>();
// 检测验证码是否正确
String code = (String) session.getAttribute("recommedCode");
log.info("send---code----------" + request.getRequestedSessionId());
if (!code.equals(authCode)) {
map.put("code", "803");
return map;
}
// 校验手机号码
if (Strings.isBlank(customPhone)) {
map.put("code", "703");
return map;// 无效数据
}

4 回复

检查是不是同一个Session Id

这个值 log 出来看 是null

相同的应用, 相同的代码,部署到不同的电脑 其中一台get.sessionid的值是 一样的,另一台不一样

~~~~~~~~~~~~~~~~~`
$(document).ready(function(){
var windowHeight = $(window).height();
var windowWidth = $(window).width();
console.info(windowHeight-80);
$(".content").css("height",(windowHeight-80)+"px");
$(".fill-content").css("height",(windowHeight-170)+"px");
//获取验证码
$(".authCode").click(function(){
var _recommendPhone = $("#recommenderPhone").val();
if(_recommendPhone.length==0){
alert("手机号码不能为空");
return;
}else{
var checkTel = /^1[3-9]\d{9}$/; //手机号码正则表达式
_flog = checkTel.test(_recommendPhone);
if(_flog!=true){
alert("手机号码格式错误!");
return;
}
}
$.post("../../recommend/sendAuth",{telephone:_recommendPhone},function(data,status){
data = eval(data);
if(data==600){
retflog=true;
var time =60;
var value = setInterval(function(){
if(time==0){
clearInterval(value);
$(".authCode").text("获取验证码");
retflog=false;
return ;
}
$(".authCode").text((time--)+"秒");
}, 1000);
}
},"json");
});

//如果改变手机号码
$("#recommenderPhone").change(function(){
    $("#getAuthCode").val("");
});

//推荐
$(".recommendBut").click(function(){
    _recommenderName = $("#recommender").val();
    _recommenderPhone = $("#recommenderPhone").val();
    _authCode = $("#getAuthCode").val();
    _barberName = $("#barberName").val();
    _barberPhone = $("#barberPhone").val();
    if(_recommenderName.length==0){
       $("#recommender").focus();
       alert("请填写请您的名字");
       return;
    }
    var checkTel = /^1[3-9]\d{9}$/;  //手机号码正则表达式
    if(_recommenderPhone.length==0){
       $("#recommenderPhone").focus();
       alert("请填写你的手机号码");
       return;
    }else{
       _flog = checkTel.test(_recommenderPhone);
       if(_flog!=true){
         $("#recommenderPhone").focus();
         alert("推荐人手机号码格式错误!");
         return;
       }
    }

    if(_authCode.length==0){
       $("#getAuthCode").focus();
       alert("请填写验证码!");
       return;
    }

    if(_barberName.length==0){
       $("#barberName").focus();
       alert("请填写发型师称呼!");
       return;
    }

    if(_barberPhone.length==0){
       $("#barberPhone").focus();
       alert("请填写发型师手机号码!");
       return;
    }else{
       _flog = checkTel.test(_barberPhone);
       if(_flog!=true){
         $("#barberPhone").focus();
         alert("发型师手机号码格式错误!");
         return;
       }
    }

    var Data={"recommenderName":_recommenderName,"recommenderPhone":_recommenderPhone,
           "authCode":_authCode,"barberName":_barberName,"barberPhone":_barberPhone};

    $.ajax({
         url:"../../recommend/action",
         data:Data,
         type:"POST",
         dataType:"JSON",
         success:function(result){
          data = eval(result);
          switch(data['code']){
          case "600":
              _tipText = "";
              if(data['recommend']=="true"){
                 _tipText = '<p style=" margin:0;margin-top: 10px;padding:10px">恭喜您获得了本次推荐活动的88现金券,感谢您的推荐!</p><p style="margin: 0;padding:10px;font-size: 12px;">(登录"型云美业",在"我的美券"中查看现金券!)</p>';
              }else{
                 _tipText = '<p style="margin:0;margin-top:10px;padding:10px">感谢您的推荐,我们将尽快与发型师沟通,为您提供更好的服务!</p><p style="margin: 0;padding:10px;font-size: 12px;">(您已获取现金券,不可重复获取!)</p>';
              }
              $(".resultContent").prepend(_tipText);
              $(".resultContainer").css("display","block");
              break;
          case "803":
              alert("验证码不正确!");
              break;
          case "703":
              alert("手机号码不正确!");
              break;
          case "1017":
              alert("您已推荐该发型师,不能重复推荐!");
              break;
          default:
              alert("服务器异常!"+data.toString());
              break;
          }
         }
    });


});

$(".resultComfirm").click(function(){
    $(".resultContainer").css("display","none");
    $(".resultContent p").remove();
});

});
~~~~~~~~~~~~~~~~~~~~~~~~~

添加回复
请先登陆
回到顶部