用户在线登录时长统计

本文介绍了一种统计用户在线时长的方法,通过在用户登录时记录当前时间到session中,然后在jsp页面计算系统当前时间与登录时间的差值来获取在线时长。提供了一份简单的后台代码示例。
摘要由CSDN通过智能技术生成

突然接到个任务,让统计用户连续在线的时长,写个简单的脚本来做个记录:

先说一下我的思路:

1:用户登录到后台将当前的登录时间放到改用的session信息中

2:jsp页面取得当前的系统时间—登录时间得到的差就是在线的时长

还是简单的把后台代码贴出来:

Date date = new Date();
Long time = date.getTime();		//得到当前时间的毫秒数
ActionContext.getContext().getSession().put("time", time);	//放入到session中【这里应用了ActionContext的方式来向session封装数据】

在jsp页面中取得数据很简单了:

String time = (String)session.getAttribute("time");

在jsp页面的头部编写表单元素用于动态显示时间

<span class='time_count'>累计在线时长:</span><span id="h"></span> <span id="m"></span> <span id="s"></span>    

在当前页面的js算法正是开始:


                
由于这是一个比较复杂的项目,我将为您提供一个基本的框架和一些伪代码,以便您更好地理解如何实现这个充电宝租赁系统。请注意,您需要根据您的实际需求和代码规范进行修改和完善。 1. 登录注册功能 1.1 用户注册 ``` public class User { private String username; private String password; // 其他用户信息 // 注册 public boolean register(String username, String password, ...) { // 检查用户名是否已经存在 if (checkUsernameExistence(username)) { return false; } // 将新用户信息保存到数据库 saveToDatabase(username, password, ...); return true; } // 检查用户名是否已经存在 private boolean checkUsernameExistence(String username) { // 查询数据库中是否存在该用户名 } // 将新用户信息保存到数据库 private void saveToDatabase(String username, String password, ...) { // 将用户信息插入到数据库中 } } ``` 1.2 用户登录 ``` public class User { private String username; private String password; // 其他用户信息 // 登录 public boolean login(String username, String password) { // 检查用户名和密码是否正确 if (checkUsernameAndPassword(username, password)) { return true; } else { return false; } } // 检查用户名和密码是否正确 private boolean checkUsernameAndPassword(String username, String password) { // 查询数据库中是否存在该用户名和密码 } } ``` 2. 管理员管理 2.1 移动电源的上下架 ``` public class Administrator { // 移动电源上架 public boolean addMobilePower(String id, String brand, double price, ...) { // 将新移动电源信息保存到数据库 saveToDatabase(id, brand, price, ...); return true; } // 移动电源下架 public boolean removeMobilePower(String id) { // 将指定移动电源信息从数据库中删除 return true; } // 将新移动电源信息保存到数据库 private void saveToDatabase(String id, String brand, double price, ...) { // 将移动电源信息插入到数据库中 } } ``` 2.2 移动电源信息的增删改查操作 ``` public class Administrator { // 增加移动电源信息 public boolean addMobilePower(String id, String brand, double price, ...) { // 将新移动电源信息保存到数据库 saveToDatabase(id, brand, price, ...); return true; } // 删除移动电源信息 public boolean removeMobilePower(String id) { // 将指定移动电源信息从数据库中删除 return true; } // 修改移动电源信息 public boolean updateMobilePower(String id, String brand, double price, ...) { // 将指定移动电源信息更新到数据库中 return true; } // 查询移动电源信息 public MobilePower queryMobilePower(String id) { // 查询指定移动电源信息并返回MobilePower对象 } // 将移动电源信息保存到数据库 private void saveToDatabase(String id, String brand, double price, ...) { // 将移动电源信息插入到数据库中 } } ``` 2.3 用户信息的增删改查操作 ``` public class Administrator { // 增加用户信息 public boolean addUser(String username, String password, ...) { // 将新用户信息保存到数据库 saveToDatabase(username, password, ...); return true; } // 删除用户信息 public boolean removeUser(String username) { // 将指定用户信息从数据库中删除 return true; } // 修改用户信息 public boolean updateUser(String username, String password, ...) { // 将指定用户信息更新到数据库中 return true; } // 查询用户信息 public User queryUser(String username) { // 查询指定用户信息并返回User对象 } // 将用户信息保存到数据库 private void saveToDatabase(String username, String password, ...) { // 将用户信息插入到数据库中 } } ``` 3. 用户管理 3.1 用户个人信息的修改 ``` public class User { private String username; private String password; // 其他用户信息 // 修改个人信息 public boolean updatePersonalInfo(String password, ...) { // 将个人信息更新到数据库中 return true; } } ``` 3.2 个人历史订单信息的查询 ``` public class User { private String username; private String password; // 其他用户信息 // 查询历史订单信息 public List<RentalOrder> queryRentalOrderHistory() { // 查询用户历史订单信息并返回RentalOrder对象列表 } } ``` 4. 移动电源管理 4.1 展示所有可用的移动电源的信息 ``` public class MobilePower { private String id; private String brand; private double price; private int remainingPower; // 其他移动电源信息 // 查询可用的移动电源信息 public List<MobilePower> queryAvailableMobilePowers() { // 查询剩余电量>50%的移动电源信息并返回MobilePower对象列表 } } ``` 4.2 选择可以使用的移动电源 ``` public class RentalOrder { private String username; private String mobilePowerId; private Date startTime; private Date endTime; private double fee; // 其他订单信息 // 租赁移动电源 public boolean rentMobilePower(String mobilePowerId) { MobilePower mobilePower = MobilePower.queryMobilePower(mobilePowerId); if (mobilePower != null && mobilePower.getRemainingPower() > 50) { // 计算租赁费用 double duration = calculateDuration(startTime, endTime); fee = duration * 1.5; // 更新订单信息和移动电源状态 saveToDatabase(username, mobilePowerId, startTime, endTime, fee); mobilePower.updateRentalStatus(true); return true; } else { return false; } } // 计算使用时长 private double calculateDuration(Date startTime, Date endTime) { // 计算开始时间和结束时间之间的小时数 } // 将订单信息保存到数据库 private void saveToDatabase(String username, String mobilePowerId, Date startTime, Date endTime, double fee) { // 将订单信息插入到数据库中 } } ``` 4.3 统计本订单的租赁费用 4.4 生成电源租赁订单 4.5 更新移动电源的状态 ``` public class MobilePower { private String id; private String brand; private double price; private int remainingPower; private boolean isRented; // 其他移动电源信息 // 更新移动电源状态 public boolean updateRentalStatus(boolean isRented) { // 更新移动电源的出租状态 return true; } } ``` 5. 其他功能 根据实际业务进行功能模块的扩充。例如,可以增加用户充值功能、租赁历史查询功能等。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值