请编写代码:Java从小白到大牛第4篇项目实战1——PetStore宠物商店对其增加一个修改密码的功能
时间: 2023-11-17 09:04:53 浏览: 174
好的,下面是一个简单的代码示例,用于在PetStore系统中增加修改密码的功能。以下代码仅供参考,具体实现可能需要根据实际情况进行调整。
UserController.java:
```
@RestController
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@PostMapping("/updatePassword")
public ApiResponse updatePassword(@RequestParam("username") String username,
@RequestParam("oldPassword") String oldPassword,
@RequestParam("newPassword") String newPassword) {
// 验证用户身份
User user = userService.findByUsername(username);
if (user == null) {
return ApiResponse.fail("用户不存在");
}
if (!user.getPassword().equals(oldPassword)) {
return ApiResponse.fail("原密码不正确");
}
// 更新密码
user.setPassword(newPassword);
userService.save(user);
return ApiResponse.success(null);
}
}
```
在UserController中增加了一个updatePassword()方法,用于处理修改密码的请求。该方法接收用户名、原密码和新密码三个参数,并返回一个ApiResponse对象表示操作结果。在该方法中,我们首先验证用户的身份,如果用户名或原密码不正确,则返回相应的错误信息;否则,将新密码更新到数据库中,并返回操作成功的提示。
修改密码的前端界面可以使用HTML和JavaScript来实现。以下是一个简单的示例:
update-password.html:
```
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>修改密码</title>
</head>
<body>
<h1>修改密码</h1>
<form id="update-password-form">
<label for="oldPassword">原密码:</label>
<input type="password" name="oldPassword" id="oldPassword" required><br>
<label for="newPassword">新密码:</label>
<input type="password" name="newPassword" id="newPassword" required><br>
<button type="submit">提交</button>
</form>
<div id="message"></div>
<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(function() {
$('#update-password-form').submit(function(event) {
event.preventDefault();
var oldPassword = $('#oldPassword').val();
var newPassword = $('#newPassword').val();
$.ajax({
url: '/user/updatePassword',
method: 'POST',
data: {
username: '当前用户的用户名',
oldPassword: oldPassword,
newPassword: newPassword
},
success: function(response) {
if (response.code == 200) {
$('#message').text('密码修改成功');
} else {
$('#message').text(response.message);
}
},
error: function() {
$('#message').text('密码修改失败');
}
});
});
});
</script>
</body>
</html>
```
在上面的代码中,我们使用了jQuery库来简化AJAX请求的处理。当用户点击提交按钮时,前端代码会将原密码和新密码发送给后端API,并在接收到响应后给出相应的提示。
需要注意的是,上面的代码中的用户名需要根据当前用户的实际情况进行设置。一般情况下,可以从会话中获取当前用户的用户名,或者在登录时将用户名存储在Cookie中,以便后续使用。
以上就是一个简单的示例,用于在PetStore系统中增加修改密码的功能。如果需要更详细的实现代码,可以参考PetStore官方代码库中的实现。
阅读全文