使用ssm框架, 用户登录时 ,使用卡号 或者 用户名和密码匹配 都可以登录 具体代码怎么实现
时间: 2024-03-22 08:41:45 浏览: 83
SSM框架实现登录注册功能完整代码
以下是一个简单的示例代码:
1. 在登录页面添加一个下拉框或单选框,让用户选择使用卡号或用户名登录:
```html
<form method="post" action="/login">
<label for="loginType">登录方式:</label>
<select id="loginType" name="loginType">
<option value="card">卡号登录</option>
<option value="username">用户名登录</option>
</select>
<br>
<label for="userId">用户ID:</label>
<input type="text" id="userId" name="userId"><br>
<label for="password">密码:</label>
<input type="password" id="password" name="password"><br>
<input type="submit" value="登录">
</form>
```
2. 在Spring MVC的Controller中处理登录请求:
```java
@Controller
public class LoginController {
@Autowired
private UserService userService;
@RequestMapping(value = "/login", method = RequestMethod.POST)
public String login(@RequestParam("loginType") String loginType,
@RequestParam("userId") String userId,
@RequestParam("password") String password,
HttpSession session) {
User user = null;
if ("card".equals(loginType)) {
// 根据卡号查询用户信息
user = userService.getUserByCard(userId);
} else if ("username".equals(loginType)) {
// 根据用户名查询用户信息
user = userService.getUserByUsername(userId);
}
if (user != null && user.getPassword().equals(password)) {
// 登录成功,将用户信息存入Session
session.setAttribute("user", user);
return "redirect:/index";
} else {
// 登录失败,返回登录页面
return "login";
}
}
}
```
3. 在Service层中实现根据卡号或用户名查询用户信息的方法:
```java
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public User getUserByCard(String card) {
return userDao.getUserByCard(card);
}
@Override
public User getUserByUsername(String username) {
return userDao.getUserByUsername(username);
}
}
```
4. 在MyBatis的Mapper中编写查询用户信息的SQL语句:
```xml
<mapper namespace="com.example.dao.UserDao">
<select id="getUserByCard" parameterType="string" resultType="com.example.entity.User">
SELECT * FROM user WHERE card = #{card}
</select>
<select id="getUserByUsername" parameterType="string" resultType="com.example.entity.User">
SELECT * FROM user WHERE username = #{username}
</select>
</mapper>
```
注意,在实际开发中,还需要对输入的卡号、用户名和密码进行校验,防止SQL注入等安全问题。同时,还需要实现注册、修改密码等功能。以上代码仅供参考,具体实现需要根据具体业务场景进行调整。
阅读全文