已知用户类结构如下:
class User{
private String username;
private String password;
// 省略有参构造方法、无参构造方法、getter方法、setter方法、toString方法
}
已知用户服务UserService接口如下:
public interface UserService {
/**
* 用户注册
* @param user
*/
void register(User user);
/**
* 用户登录
* @param username
* @param password
* @return 登录结果
*/
String login(String username,String password);
}
案例描述:
创建
UserService接口的实现类UserServiceImpl,重写register()方法,要求在方法中实现用户注册功能。
案例需求:
register(User user)方法内需要实现以下操作:
- 创建以user对象中username属性值为文件名的
.properties文件。比如: > -user.getUsername()的返回值为zhangsan,则创建名为zhangsan.properties的文件- 在已创建的
.properties文件中写入user对象的password属性值。比如: > -user.getPassword()的返回值为123456,则在文件中写入password=123456- 要求验证user对象的username值的唯一性,如果传入的user对象的username重复了,则抛出
UsernameDuplicateException异常,该异常需要自定义。
实现步骤分析:
register(User user)方法传入user对象后,在方法中首先要验证user对象的用户名username是否重复,比如username=zhangsan。也就是查询是否具有zhangsan.properties文件,如果有,则直接抛出UsernameDuplicateException异常。zhangsan.properties的文件。user对象的password属性值,比如password属性值为zs123456。将password=和zs123456进行字符串拼接。比如:password=zs123456。zhangsan.properties文件中。案例描述:
创建
UserService接口的实现类UserServiceImpl,重写login()方法,要求在方法中实现用户登录功能。
案例需求:
login(String username,String password)方法内需要实现以下操作:
- 搜索文件名为username实际参数的文件是否存在。比如: > - username为
zhangsan,则搜索zhangsan.properties文件是否存在。- 不存在,则返回结果:"用户名不正确,请重新输入",存在,则验证该文件中的password的值是否和传入方法的实参password一致。如果一致,则返回结果:"登录成功",否则返回结果"密码错误,登录失败"。
- 要求使用Properties集合来获取文件中的password属性值。
实现步骤分析:
login(String username,String password)方法传入user对象后,在方法中首先要验证user对象的用户名username是否存在,比如username=zhangsan。也就是查询是否具有zhangsan.properties文件,没有则直接返回结果:"用户名不正确,请重新输入"。load()方法获取password属性的值。"登录成功"。否则返回:"密码错误,登录失败"。