防止登录成功后重复刷新页面跳回登录页面

登录action:system/Syslogin/sysLogin.do

public String sysLogin() {
try {
            //验证码验证
            String yzm = Struts2Utils.getRequest().getParameter("yzm");
            //登录验证
            String username = Struts2Utils.getRequest().getParameter("username");
            String password = Struts2Utils.getRequest().getParameter("password");
            
            String authCode = (String) Struts2Utils.getSession().getAttribute(com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY);
            if (authCode == null || !authCode.equalsIgnoreCase(yzm) ) {
                return "yzmError";
            }
            
            User user = userService.getsysLoginByUsername(username);
            
            Loginrecord loginrecord = new Loginrecord();
            
            if(user==null){
                
                //捕获异常,保证继续执行(通过验证码方可记录)
                try {
                    //登录日志(失败)
                    loginrecord.setUsername(username);
                    loginrecord.setPassword(password);
                    loginrecord.setType(1);
                    loginrecord.setResult(0);
                    loginrecord.setIp(RequestUtils.getIpAddr(Struts2Utils.getRequest()));
                    loginrecord.setLogtime(new Date());
                    loginrecordService.insert(loginrecord);
                } catch (Exception e) {
                    logger.info(e);
                    e.printStackTrace();
                }
                
                return "loginError";
            }else if(!user.getPassword().equals(password)){
                
                //捕获异常,保证继续执行(通过验证码方可记录)
                try {
                    //登录日志(失败)
                    loginrecord.setUsername(username);
                    loginrecord.setPassword(password);
                    loginrecord.setType(1);
                    loginrecord.setResult(0);
                    loginrecord.setIp(RequestUtils.getIpAddr(Struts2Utils.getRequest()));
                    loginrecord.setLogtime(new Date());
                    loginrecordService.insert(loginrecord);
                } catch (Exception e) {
                    logger.info(e);
                    e.printStackTrace();
                }
                
                return "loginError";
            }else{
                Struts2Utils.getSession().setAttribute(Constants.CURRENT_USER, user);
                
                //捕获异常,保证继续执行(通过验证码方可记录)
                try {
                    //登录日志(成功)
                    loginrecord.setUsername(username);
                    loginrecord.setType(1);
                    loginrecord.setResult(1);
                    loginrecord.setIp(RequestUtils.getIpAddr(Struts2Utils.getRequest()));
                    loginrecord.setLogtime(new Date());
                    loginrecord.setUserid(user.getUserid());
                    loginrecordService.insert(loginrecord);
                } catch (Exception e) {
                    logger.info(e);
                    e.printStackTrace();
                }




 //登录成功后返回成功页面的跳转方法
      return "!/system/Syslogin/index.do";
}

//登录成功跳转页面
	public String index() {
		User currentUser = (User)Struts2Utils.getSession().getAttribute(Constants.CURRENT_USER);
		if(currentUser==null){
			//请先登录
			return "sysLogin";
		}else{
			if(currentUser.getIsadmin()!=1){
				//不是管理员
				return "sysLogin";
			}
		}
		return "/WEB-INF/frame/backFrame/index.jsp";
	}


采用调用跳转登录成功页面的方法就可以避免登录成功后重复刷新页面跳回登录页面,因为登录成功后的url改变了

正常成功后路径:system/Syslogin/sysLogin.do

通过

return "!/system/Syslogin/index.do";
路径就变了:system/Syslogin/index.do


不管怎么刷新只会执行public String index()方法,前提是必须做session判断是否还有效.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mydwr

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值