springboot 学习笔记(五)

(五)springboot整合thymeleaf模板,实现简单的登陆

    1、修改上一节笔记中的user表,新增一个password字段,同时要求username为UNIQUE,以实现登陆校验,表结构如下。

CREATE TABLE `user` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(128) NOT NULL COMMENT '名称',
  `phone` varchar(16) DEFAULT NULL COMMENT '用户手机号',
  `create_time` datetime DEFAULT NULL COMMENT '创建时间',
  `age` int(4) DEFAULT NULL COMMENT '年龄',
  `password` varchar(45) NOT NULL COMMENT '密码',
  PRIMARY KEY (`id`),
  UNIQUE KEY `name_UNIQUE` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8

    2、新增一个通过name查询user的方法,具体代码就不写了

    3、pom文件中增加thymeleaf依赖

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

        4、index.html页面放在templates文件夹下,为了页面美化,我使用了一个模板,css文件和image文件放在了static目录下的新建文件夹中,代码就不上传了。

<!DOCTYPE html>
<html>
<head>
    <title>Login</title>
        <meta charset="utf-8">
        <link href="/css/style.css" rel='stylesheet' type='text/css' />
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <script type="application/x-javascript"> addEventListener("load", function() { setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); } </script>
</head>
<body>
     <div class="main">
        <div class="login-form">
            <h1>用户登陆</h1>
                    <div class="head">
                        <img src="/images/user.png" alt=""/>
                    </div>
                <form enctype="multipart/form-data" method="post" action="/user/login">
                        <input type="text" class="text" name="username" value="用户名"  >
                        <input type="password" name="password" value="password" >
                        <div class="submit">
                            <input type="submit" value="登陆">
                         </div>    
                    <p><a href="#">忘记密码 ?</a></p>
                </form>
            </div>
        </div>
                
</body>
</html>

        5、为了保证静态文件加载,需要在application.properties进行配置

#加载静态文件,否则css、image等文件加载可能出现问题
spring.mvc.static-path-pattern=/**
#开发过程中建议关闭cache,方便调试
spring.thymeleaf.cache=false 

     6、写一个Controller来实现登陆及用户校验

/**
 * 
 */
package com.zc.mybatis.controller;

import java.util.Date;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.zc.mybatis.domain.User;
import com.zc.mybatis.service.UserService;

/**
 * @author zhangchao
 *
 */
@Controller
public class LoginController {
    //登陆页面
    @RequestMapping(value = "/")
    public Object hello() {
        return "index";
    }

    @Autowired
    private UserService userService;
    //增加测试用户
    @RequestMapping(value="/user/add")
    @ResponseBody
    public Object addUsers() {
        User user = new User();
        for(int i = 1;i<6;i++) {
            user.setName("用户"+i);
            user.setPassword("123456");
            user.setPhone("124514144411");
            user.setAge(19);
            user.setCreateTime(new Date());        
            userService.add(user);
        }
        return "新增测试用户";
    }
    //用户校验
    @RequestMapping(value = "/user/login")
    @ResponseBody
    public Object login(HttpServletRequest request) {
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        password = password.trim();
        User user = userService.getUserByName(username);
        if (null != user && password.equals(user.getPassword())) {
            return "登陆成功";
        } else {
            return "登陆失败";
        }
    }
}

      7、先运行localhost:8080/user/add来新增测试用户,然后通过localhost:8080访问登陆页面,输入用户名:用户1,密码:123456,页面返回 登陆成功。

 

猜你喜欢

转载自www.cnblogs.com/codingstudy/p/10271831.html