layui登录界面美化效果的示例代码
创始人
2024-12-29 04:41:46
0次

完整代码展示如下:

1、前端html

login.html






登录




    
  
        
            
                用户名:
                
                    ${UnameErrMsg?if_exists}
                

            

                             密码:                                      ${PwdErrMsg?if_exists}                 

            

                             验证码:                                      ${yzmErrMsg?if_exists}
                                 

            

                                          登录             

             

       

登录界面样式

@CHARSET "UTF-8";
body{
    background-image:url(/static/images/login-bg.png);
}
.login {
    padding-top: 15%;
    width: 26%;
}
  
.btn-center{
    text-center:center;
    margin:0 auto;
}

2、写控制器

其中就是login方法与ulogin方法

controller包下IndexController类

package cn.pangpython.controller;
  
import com.jfinal.aop.Before;
import com.jfinal.core.Controller;
import com.jfinal.ext.kit.SessionIdKit;
  
import cn.pangpython.model.User;
import cn.pangpython.utils.DateUtils;
import cn.pangpython.utils.MD5;
import cn.pangpython.validate.RegistValidator;
import cn.pangpython.validate.UserLoginValidator;
  
/**
 * @author pangPython
 * 主页控制器
 */
public class IndexController extends Controller {
    public void index(){
        renderText("index");
    }
  
    //渲染注册页面
    public void regpage(){
        render("regist.html");
    }
  
    //处理注册
    @Before(RegistValidator.class)
    public void regist(){
        String pwd = getPara("user.pwd");
        String confirm = getPara("reg.confirm");
  
        //验证码验证
        boolean result = validateCaptcha("reg.yzm");
        if(!result){
            setAttr("yzmErrMsg", "验证码错误!");
            render("regist.html");
            return;
        }
        //确认密码验证
        if(!pwd.equals(confirm)){
            setAttr("confirmErrMsg", "请正确填写确认密码!");
            render("regist.html");
            return;
        }
  
        String uname = getPara("user.name");
        User user = getModel(User.class);
        String reg_time = DateUtils.dateToUnixTimestamp(DateUtils.getNowTime())+"";
        //使用用户注册日期作为md5密码加密的盐值,可节省一个salt数据库字段
        pwd = MD5.GetMD5Code(pwd+reg_time);
  
        //给user实体类填充数据
        user.setName(uname);
        user.setPwd(pwd);
        user.setRegTime(reg_time);
  
        //使用jfinal的保存操作
        user.save();
  
        renderText("注册成功!");
    }
  
    public void login(){
        render("login.html");
    }
  
    @Before(UserLoginValidator.class)
    public void ulogin(){
        // 验证码结果
        boolean result = validateCaptcha("yzm");
        if (!result) {
            setAttr("yzmErrMsg", "验证码错误!");
            render("login.html");
            return;
        }
  
        String uname = getPara("user.name");
        String sql = "select * from user where name = ? limit 1";
  
        User user = User.dao.findFirst(sql, uname);
        if (user != null) {
            String pwd = MD5.GetMD5Code(getPara("user.pwd") + user.getRegTime());
  
            if (user.getPwd().equals(pwd)) {
  
                // 生成唯一标识
                String sessionId = SessionIdKit.me().generate(getRequest());
                // 设置服务器端session
                setSessionAttr(sessionId, user);
                // 设置用户端cookie
                setCookie("cuser", sessionId, 60000);
                //redirect("/user");
                renderText("登录成功!");
  
            } else {
                // 密码不正确
                setAttr("UnameErrMsg", "用户名或密码不正确!");
                render("login.html");
            }
  
        } else {
            // 用户名不存在
            setAttr("UnameErrMsg", "用户名不存在!");
            render("login.html");
        }
  
    }
  
}

3、写登录验证器

validator包下的UserLoginValidator继承JFinal的Validator

import com.jfinal.core.Controller;
import com.jfinal.validate.Validator;
  
public class UserLoginValidator extends Validator {
  
    @Override
    protected void handleError(Controller controller) {
        controller.keepPara();
  
    }
  
    @Override
    protected void validate(Controller arg0) {
        validateRequired("user.name", "UnameErrMsg", "请输入用户名!");
        validateRequired("user.pwd", "PwdErrMsg", "请输入密码!");
        validateRequired("yzm", "yzmErrMsg", "请输入验证码!");
    }
  
}

效果展示:

layui登录界面美化效果的示例代码

layui登录界面美化效果的示例代码

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...