一个多种登录方式的解决办法
来源:互联网 发布:炭知天下主要在哪里 编辑:程序博客网 时间:2024/06/08 13:45
开发一个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 0
- 一个多种登录方式的解决办法
- react.js路由(4.x):模拟一个用户登录2(登录判断、路由的多种加载方式)
- 贝思外贸软件-支持多种方式登录
- 升职的多种方式
- sql server 2005 windows验证方式不能登录的解决办法
- 为您的.NET网站增加OpenID,Window Live,人人网等多种登录方式之一: 增加OpenID登录
- 双绞线的多种连接方式
- XML的多种操作方式
- XML的多种操作方式
- 多种方式的oracle排序
- 线程同步的多种方式
- 多种数据库的处理方式
- 表单的多种提交方式
- LRU的多种实现方式
- SlidingMenu的多种使用方式
- CString的多种初始化方式
- 数据传递的多种方式
- ActiveMQ的多种部署方式
- 大型网站架构之分布式消息队列
- 在创建第一个实例或引用任何静态成员之前,将自动调用静态构造函数来初始化类?
- 页面各种禁止方法
- 51NOD 1554 欧姆诺姆和项链 【kmp】
- JQuery常用方法
- 一个多种登录方式的解决办法
- CocoaPods创建私有库步骤
- 自动存储、静态存储、动态存储
- hdoj2012_素数判定
- BroadcastReciever简单用法示例
- 网站静态化生成html的好处
- CodeForces 149 D.Coloring Brackets(区间DP)
- $.on()事件处理程序
- Unity游戏开发——unity接入多渠道sdk