实习小记2

来源:互联网 发布:悉尼机场免税店mac价格 编辑:程序博客网 时间:2024/05/24 13:28

1.Json、ajax请求

   前端的js,发送json请求

   function loginCheck(){
        $.ajaxSettings.async = false;
        var loginStatus = true;
        if(validateForm_loginForm()){
            $.getJSON("loginStatusCheck",{
                'email' : $(":input[name='account']").val(),
                'account' : $(":input[name='account']").val(),
                'password': $(":input[name='password']").val()
            },function(result) {
                if (result != null && result.loginState == 1) {
                    if(!confirm('用户已登录,您是否取代之前的登录?')){
                        loginStatus = false;
                    }
                }
            });
            $.ajaxSettings.async = true;
        }else{
            loginStatus = false;
        }
        return loginStatus;
    }


struts.xml

对Json请求进行拦截

<action name="loginStatusCheck" class="user.loginAction" method="loginStatusCheck">
            <result name="login-status-json" type="json">
                   <param name="includeProperties">
                    loginState
                </param>
            </result>
        </action>


后台的action处理请求

public String loginStatusCheck() throws IOException {
        this.email = getRequest().getParameter("account");
        this.account = getRequest().getParameter("account");
        this.password = getRequest().getParameter("password");
        HttpSession session = getRequest().getSession(true);
        if (session.getAttribute(GeneralConstant.USER_ATTRIBUTE) == null) {
            ExtendInteger loginStatus = new ExtendInteger();
            User u = null;
            if (loginByEmail) {
                u = manager.loginByEmail(email, MD5.md5(password), loginStatus);
            } else {
                u = manager.loginByAccount(account, MD5.md5(password), loginStatus);
            }
            switch (loginStatus.getValue()) {
            case User.LOGIN_SUCCESS:
                if (GeneralConstant.isDenyUserMultiLogin()) {
                    Online online = onlineManager.getByMemberId(u.getId());
                    if (online != null) {// 用户已登录
                        loginState = 1;
                    } else {
                        loginState = 0;
                    }
                    return "login-status-json";
                }
                break;
            default:
                loginState = 0;
                return "login-status-json";
            }
        }
        return null;
    }
   



0 0