已知用户类结构如下:
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
属性的值。"登录成功"
。否则返回:"密码错误,登录失败"
。