欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

springboot 学习笔记(五)

程序员文章站 2022-10-19 17:00:57
(五)springboot整合thymeleaf模板,实现简单的登陆 1、修改上一节笔记中的user表,新增一个password字段,同时要求username为UNIQUE,以实现登陆校验,表结构如下。 2、新增一个通过name查询user的方法,具体代码就不写了 3、pom文件中增加thymele ......

(五)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,页面返回 登陆成功。