请实现一个简单的登录页,如果用户密码正确(用户=admin,密码=admin123)则跳转成功页,显示个人信息,并显示登录时间;如果失败,则将失败信息直接展示在登录按钮旁边,注意结合EL表达式来实现。
时间: 2024-10-25 10:14:09 浏览: 15
在Java Web应用中,我们可以使用Spring MVC框架配合Thymeleaf模板引擎来实现这样的登录页面。下面是一个简化的示例代码:
```html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<title>Login Page</title>
</head>
<body>
<form th:action="@{/login}" method="post">
<label for="username">Username:</label>
<input type="text" id="username" name="username" required><br/>
<label for="password">Password:</label>
<input type="password" id="password" name="password" required><br/>
<button type="submit" th:text="#{success.login}">Login</button>
<span th:if="${#fields.hasErrors('password')}" th:text="${fieldError(password)}">Invalid password</span>
</form>
<!-- 使用Thymeleaf的条件语句来显示个人信息或登录时间 -->
<div th:if="${success}" th:text="${user.name} (Logged in at: #{time.format(loginTime)})"></div>
</body>
</html>
```
在这个例子中,`th:action`属性用于指定表单提交的目标URL,`th:text`用于设置按钮的文字(如果是登录成功),`th:if`用于判断是否显示错误信息或个人信息。
在后台控制器(如Spring MVC的Controller)中,可以处理请求并检查用户名和密码:
```java
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.validation.BindingResult;
@Controller
public class LoginController {
@GetMapping("/login")
public String loginForm() {
return "login";
}
@PostMapping("/login")
public String handleLogin(@RequestParam("username") String username,
@RequestParam("password") String password,
BindingResult result) {
if ("admin".equals(username) && "admin123".equals(password)) {
// 假设这里有一个User对象,存储了管理员的信息
User admin = ...;
Model model = new Model();
model.addAttribute("success", true);
model.addAttribute("user", admin);
model.addAttribute("loginTime", LocalDateTime.now());
return "redirect:/success"; // 跳转到成功页面
} else {
result.rejectValue("password", "login.failure", "Incorrect password");
return "login"; // 如果验证失败,返回登录页面
}
}
}
```
这只是一个基本的例子,实际项目中还需要考虑更多的安全性措施,比如密码加密、CSRF防护等。
阅读全文