方法一
在你的数据库用户表中添加次数+时间字段....等你需要显示的字段
我在这里演示用户登录次数+上次登录时间,方法一致!!
Controller控制层代码
@RequestMapping("tolog")
public String tolog(@ModelAttribute User user){
return "log";
}
@RequestMapping(value = "log")
public String log(@Validated @ModelAttribute User user, BindingResult result, HttpSession session){
if(result.hasErrors()){ //验证是否有错
return "log";
}
int flag = shopSevice.log(user); //判断账号或密码是否正确
User u =shopSevice.findlog(user); //查询该账号的全部信息
//登录次数 无论成功还是失败都+1
shopSevice.logcount(u);
if(flag>0){
//缓存用户信息到session
session.setAttribute("user",u);
//记录本次登录时间 session域对象中存的还是上次登录时间
shopSevice.logdate(u.getId());
return "redirect:list";
}
return "log";
}
前端页面直接获取即可
用户名:${user.username}, 登录次数:${user.count},
上次登录时间:<fmt:formatDate value="${user.logdate}" pattern="yyyy-MM-dd HH:mm:ss"></fmt:formatDate>
以上是在数据库中加字段操作获取登录次数+上次登录时间较为复杂,但比较好理解!!
下面是用域来存取信息 较为简单!!常用!!!
方法二
session域对象中记录登录次数+上次登录时间 Controller控制层代码
@Controller //控制层 负责视图渲染 也称视图层
public class ProductController {
@Autowired
ProductSevice productSevice;
@RequestMapping(value = "tolog")
public String tolog(@ModelAttribute User user, Model model){
return "log";
}
@RequestMapping(value = "log")
public String log(@Validated User user, BindingResult result, HttpSession session){
if(result.hasErrors()){
return "redirect:tolog";
}
user = productSevice.findlog(user); //查询对象信息覆盖
//根据用户名查询该用户登录次数
Integer count = (Integer) session.getAttribute(user.getUsername());
if(count==null){
count=1;
}else{
count+=1;
}
session.setAttribute(user.getUsername(),count); //登录次数存域对象中
session.setAttribute("count",count); //列表接收的登录次数
if(user!=null){
session.setAttribute("user",user);
//获取用户上次登录时间存入域对象中
Date time = (Date) session.getAttribute(user.getUsername() + "1");
session.setAttribute("time",time);
//更新时间
session.setAttribute(user.getUsername()+"1",new Date());
return "list";
}
return "redirect:tolog";
}
//注销
@RequestMapping(value = "logout")
public String logout(HttpSession session){
session.invalidate();
return "redirect:tolog";
}
}
前端页面
<body>
用户名:${user.username} ,登录次数:${count},上次登录时间${time}
<a href="logout">注销</a>
</body>
注意:每次注销用户即情除session域中数据 !!所以每次退出再次登录都是第一次登录!!
问题到这就结束了!!还没有解决的有疑问的尽可评论互动!!
Thanks!!