登录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