springmvc 使用session
时间: 2023-09-20 12:09:31 浏览: 93
在Spring MVC中,使用Session需要进行以下步骤:
1. 在Controller中添加一个方法,该方法用于处理登录请求,并将用户信息保存到Session中:
```java
@Controller
public class LoginController {
@PostMapping("/login")
public String login(@RequestParam("username") String username, @RequestParam("password") String password, HttpSession session) {
// 验证用户名和密码
if ("admin".equals(username) && "123456".equals(password)) {
// 将用户信息保存到Session中
session.setAttribute("user", new User(username, password));
return "redirect:/index";
} else {
return "redirect:/login";
}
}
}
```
2. 在其他Controller中获取Session中保存的用户信息:
```java
@Controller
public class IndexController {
@GetMapping("/index")
public String index(HttpSession session, Model model) {
// 从Session中获取用户信息
User user = (User) session.getAttribute("user");
model.addAttribute("user", user);
return "index";
}
}
```
在JSP页面中,可以使用EL表达式`${user.username}`来获取Session中保存的用户名。
需要注意的是,如果不想在每个Controller的方法中都添加HttpSession参数,可以使用Spring MVC提供的@SessionAttributes注解,将需要保存到Session中的属性添加到模型中,如下所示:
```java
@Controller
@SessionAttributes("user")
public class IndexController {
@GetMapping("/index")
public String index(Model model) {
// 从模型中获取用户信息
User user = (User) model.getAttribute("user");
model.addAttribute("user", user);
return "index";
}
}
```
这样,在其他Controller中也可以获取到Session中保存的用户信息。需要注意的是,@SessionAttributes只适用于使用ModelAttribute注解的方法,而不适用于使用RequestParam注解的方法。
阅读全文