赞
踩
这是自己在练手时写的一个简单登录注册的方法。
1.由于本项目时基于springboot写的,所以正常创建springboot项目就不多说,先说一说配置文件application.yml(这里改了后缀,了解的就不多说)。
这里我的数据库使用的是8以上的,5的可能需要改写内容,不了解的可去搜索。
- spring:
- datasource:
- driver-class-name: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://localhost:3306/student?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true
- username: 数据库用户名
- password: 数据库密码
2.接下来创建一些文件包,对应相应的层处理不同逻辑
controller包下创建LoginController.class与UserController.class填入相应代码:
LoginController.class:
- //登陆判断功能
- @PostMapping("/loginIn")
- public String login(LoginForm loginForm, Model model, HttpServletRequest request){
- LoginResult result = this.loginService.login(loginForm);
- String url = "";
- ModelAndView modelAndView = new ModelAndView();
- if(result.getCode().equals(-1) || result.getCode().equals(-2)){
- url = "login_3";
- model.addAttribute("msg", result.getMsg());
- }
- if(result.getCode().equals(0)){
- HttpSession session = request.getSession();
- switch (loginForm.getType()){
- case 1:
- session.setAttribute("user", (User)result.getObject());
- url = "redirect:/index.html";
- break;
- case 2:
- session.setAttribute("admin", (Admin)result.getObject());
- url = "redirect:/admin/indexadmin";
- break;
- }
-
- }
- return url;
- }
这里自己实现了,根据用户的性质不同,调用相应逻辑代码后,跳转到相应页面。
UserController.class:
- @Controller
- @RequestMapping("/user")
- public class UserController {
-
- @Autowired
- private UserService userService;
- //将logincontroller返回的数据返回给 定义的url网页
- @GetMapping("/{url}")
- public String redirect(@PathVariable("url") String url){
- return url;
- }
-
- }
3.创建entity包
在此包下,创建User.class文件写入:
- @Entity(name ="user")
- public class User implements Serializable {
-
- private static final long serialVersionUID=1L;
-
- @Id
- @GeneratedValue(strategy= GenerationType.IDENTITY)
- private Integer id;
-
- private String username;
-
- private String password;
- }
这里对应的就是数据库你自己创建的表的字段了,创建数据库表就不过多说明了。
4.创建mapper包
在里面创建UserMapper.class写入:
- public interface UserMapper extends BaseMapper<User> {
-
- }
5.创建service.impl包
再创建LoginServiceImpl.class写入:
- @Override
- public LoginResult login(LoginForm loginForm) {
- LoginResult loginResult = new LoginResult();
- switch (loginForm.getType()){
- case 1:
- QueryWrapper<User> queryWrapper = new QueryWrapper<>();
- queryWrapper.eq("username", loginForm.getUsername());
- User user = this.userMapper.selectOne(queryWrapper);
- if(user == null) {
- loginResult.setMsg("用户名不存在");
- loginResult.setCode(-1);
- return loginResult;
- }
- //验证密码
- if(!user.getPassword().equals(loginForm.getPassword())){
- loginResult.setMsg("密码错误");
- loginResult.setCode(-2);
- return loginResult;
- }
- loginResult.setMsg("登录成功");
- loginResult.setCode(0);
- loginResult.setObject(user);
- break;
- case 2:
- QueryWrapper<Admin> adminQueryWrapper = new QueryWrapper<>();
- adminQueryWrapper.eq("adminname", loginForm.getUsername());
- Admin admin = this.adminMapper.selectOne(adminQueryWrapper);
- if(admin == null) {
- loginResult.setMsg("用户名不存在");
- loginResult.setCode(-1);
- return loginResult;
- }
- //验证密码
- if(!admin.getAdminpassword().equals(loginForm.getPassword())){
- loginResult.setMsg("密码错误");
- loginResult.setCode(-2);
- return loginResult;
- }
- loginResult.setMsg("登录成功");
- loginResult.setCode(0);
- loginResult.setObject(admin);
- break;
- }
- return loginResult;
- }
这里实现了不同性质的用户的登陆验证!
这里实现了一个简单登陆的方法,在前端只需要进行相应的接口实现,从而能实现一个登陆验证。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。