一个多种登录方式的解决办法

开发一个web网站,用到了多种登录方式:

  • 手机验证码登录
  • 用户名密码登录
  • 微信登录

    login.jsp如下:
    只列举了手机登录的代码,同一个页面里还有另外两个div,用boostrap的切换卡来进行动态切换。

<div class="phoneLogin wn_new_l_items" id="phoneLogin">
    <a href="#" class="dongtai">手机动态码登录(请选择国际区号)</a><!--手机动态码登录标题-->
    <form id="phoneSubmit" method="post">
    <div class="form-group">
        <div class="input-group">
        <input type="text" id="accessname" name="accessname" placeholder="手机号" ><!--手机号输入框-->
        <input type="button" class="getcode" id="btnSendCode" name="btnSendCode" value="获取动态密码" onclick="sendMessage()"><!--发送验证码和重新发送按钮-->
        </div>
    <input type="text" id="code" name="code" placeholder="动态密码">
    </div>
        <button type="submit" id="loginMobileButton">登录</button>
        <input type="hidden" name="loginType" value="1"> 
        <input type="hidden" value="">
    </form>
</div>

这三个登录页面是放在一个jsp里的,分三个表单,为了简化提交表单的方式,这三个表单都提交到一个controller方法里。

如何进行判断,这里用了一个较为灵活的处理方法,每个登录的div,都有一个隐藏的标签:

 <input type="hidden" name="l_type" value="1"> 

三种登录方式,l_type分别为1,2,3。
这时候每次传到controller方法的参数是四个(String accessname,String password,String code,int loginType),分别是用户名,密码,验证码,登入类型。

此时的controller方法可以这么写:

@RequestMapping(value="/login",method=RequestMethod.POST)
public String login(String accessname,String password,String code,int loginType){
        User user = iUserService.getUserByAccessname(accessname);
        if(user==null) loginType=0;
        //判断登录类型
        switch(loginType){
        case 0://注册
            return "redirect:register?accessname="+accessname;
        case 1://手机登录
            return "redirect:phoneLogin?accessname="+accessname+"&code="+code;
        case 2://密码登录
            return "redirect:passwordLogin?accessname="+accessname+"&password="+password;
        default://微信登录尚未实现
            return null;
        }
}

相比if语句而言,有时候switch语句确实能够让代码更加精简,并且用起来非常舒心。

在这里我只是记录一下所获的启示,没有写的太详尽,在一些细节处理上还是需要更加用心才行。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值