ssm框架实现用户登录
时间: 2023-09-20 17:03:36 浏览: 32
要实现用户登录,首先需要创建一个用户表,包含用户名和密码字段。然后可以使用Spring Security来实现认证和授权。
1. 创建用户表
在数据库中创建一个用户表,包含用户名和密码字段。可以使用以下SQL语句:
```
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`password` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
```
2. 配置Spring Security
在Spring配置文件中配置Spring Security,启用基于表单的认证和授权,并配置用户登录页面和成功页面。
```
<security:http auto-config="true">
<security:intercept-url pattern="/login" access="permitAll" />
<security:intercept-url pattern="/home" access="hasRole('ROLE_USER')" />
<security:form-login login-page="/login" default-target-url="/home" />
</security:http>
<security:authentication-manager>
<security:authentication-provider>
<security:jdbc-user-service data-source-ref="dataSource" />
</security:authentication-provider>
</security:authentication-manager>
```
3. 编写登录页面
在登录页面中,需要包含一个用户名和密码输入框,以及一个提交按钮。可以使用以下代码:
```
<form name="loginForm" action="/login" method="post">
<label for="username">Username:</label>
<input type="text" id="username" name="username" />
<label for="password">Password:</label>
<input type="password" id="password" name="password" />
<input type="submit" value="Login" />
</form>
```
4. 编写Controller
在Controller中处理登录请求,并使用Spring Security进行认证和授权。
```
@RequestMapping(value="/login", method=RequestMethod.POST)
public String login(@RequestParam("username") String username,
@RequestParam("password") String password,
HttpServletRequest request) {
UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken(username, password);
try {
Authentication auth = authenticationManager.authenticate(token);
SecurityContextHolder.getContext().setAuthentication(auth);
return "redirect:/home";
} catch (AuthenticationException e) {
request.setAttribute("error", e.getMessage());
return "login";
}
}
```
这样就可以通过SSM框架实现用户登录了。