文档章节

实现验证码功能

木九天
 木九天
发布于 07/19 12:24
字数 285
阅读 1
收藏 0

1、实现验证码,并存储

import com.dtb.pc_enterprise.entity.EnterUserEntity;
import com.dtb.pc_enterprise.service.AdminService;
import com.dtb.pc_enterprise.util.RedisService;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.ServletRequestUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

/**
 * @Author:ChengJian
 * @Description: 用户登录
 * @Date: Created in 下午3:40 2018/7/13
 */

@Controller
public class LoginController {

    private Logger logger = LoggerFactory.getLogger(LoginController.class);

    @Autowired
    AdminService adminService;

    @Autowired
    RedisService redisService;

    @GetMapping(value = "/admin/index.html")
    public String adminIndex(){
        return "/user/index";
    }

    @RequestMapping(value = "/")
    public String toLogin(){
        return "login";
    }

    @GetMapping(value = "index.html")
    public String index(){
        return "/login";
    }


    @PostMapping(value = "/login.html")
    public String userLogin(ModelMap result, HttpSession httpSession, HttpServletRequest request){

        String userName    = ServletRequestUtils.getStringParameter(request,"userName",null);
        String password    = ServletRequestUtils.getStringParameter(request,"password",null);
        String confirmCode = ServletRequestUtils.getStringParameter(request,"confirmCode",null);

        logger.info("===============userLogin()==========");
        result.put("userName",userName);
        result.put("password",password);
           result.put("confirmCode",confirmCode);


        if (StringUtils.isEmpty(userName) || StringUtils.isEmpty(password)){
            result.put("success",false);
            result.put("message","用户或密码不能为空");
            return "/login";
        }

        String certCode = ((String) httpSession.getAttribute("CERT_CODE"));

        if (StringUtils.isEmpty(confirmCode) || !confirmCode.equalsIgnoreCase(certCode) ){
            httpSession.removeAttribute("CERT_CODE");
            result.put("success",false);
            result.put("message","验证码错误");
            return "/login";
        }


        // 查询用户匹配 t_admin
        EnterUserEntity adminEntity = adminService.userLogin(userName,password);

        if (adminEntity == null){
            result.put("success",false);
            result.put("message","用户名或者密码错误");
            return "/login";
        }
        result.clear();
        httpSession.setAttribute("ADMIN_ACCOUNT",adminEntity);

        return "/user/index";
    }

    /**
     *
     * @Description:退出
     * @Date:2018/7/17 下午6:15
     * @Author:ChengJian
     * @UpdateRemark:
     * @Version:1.0
     *
     */
    @GetMapping(value = "/logout.html")
    public String logout(HttpSession httpSession){
        httpSession.removeAttribute("CERT_CODE");
        httpSession.removeAttribute("ADMIN_ACCOUNT");
        return "/login";
    }

}

 

2、获取验证码

String certCode = ((String) httpSession.getAttribute("CERT_CODE"));

© 著作权归作者所有

共有 人打赏支持
木九天
粉丝 67
博文 164
码字总数 107051
作品 0
海淀
程序员
Android 获取验证码自动填充

前提 手机获取验证码,这是每个APP都会实现的功能,但是获取验证码之后,切换到短信界面,然后再返回到当前界面,感觉比较蛋疼,也比较麻烦,因此想着获取到验证码之后自动填充这个功能相对来...

Silence潇湘夜雨
06/13
0
0
[PHP] 验证码校验功能的实现

验证码的校验是利用PHP中的 SESSION功能来实现。 在最顶端声明函数 session_start(); 告诉服务器我们要用这个函数的功能。 session_start(); 接下来我们用到的就是验证码实现的代码。这里用英...

class__fun
2017/07/31
0
0
php利用云片网实现短信验证码功能

本文将以php举例,介绍网页短信验证码功能的实现。 在众多的第三方短信服务商中我选择了云片网这个短信服务商,本文也将尽可能利用最简单的方式去帮助广大开发者解决短信验证码功能模块的实现...

爱前端的小白
2017/11/17
0
0
JSP作业5:servlet应用--图片验证码

作业类型:验证性实验 实验目的:掌握Servlet在JSP开发中的应用 实验内容:使用Servlet实现网页验证码功能。 1. 编写一个Servlet,实现以下功能: (1)能够响应来自客户端的GET请求,不响应...

yifon
2014/04/20
0
1
使用 jQuery, Angular.js 实现登录界面验证码详解

写在前面: 前段事件,做了一个用ajax后台异步交互的登录功能,自己在上面加了一个验证码的功能,这个功能背后的原理挺好理解的,实现起来也十分简单,特此写波分享,,自己写的过程中踩了不...

OB丶Koro1
2017/04/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

iOS开发用到的图片尺寸汇总

启动图 型号 竖屏 横屏 iPhone SE 640px × 1136px 1136px × 640px iPhone 6s 750px × 1334px 1334px × 750px iPhone 6s Plus 1242px × 2208px 2208px × 1242px iPhone 7 750px × 1334......

业界小白
29分钟前
0
0
浅谈redis

redis是一个开源,内存式的健值存储数据库,也被称为健值存储的字典服务器。健值类型有字符串,hash(哈希类型),set(集合),list(列表) 和有序集合 特征细节: 内存式:redis将健值存储在主...

拐美人
36分钟前
0
0
无限扩容,按需使用!ZStack推出基于阿里云NAS的文件存储服务

日前,ZStack发布2.6.0版本,正式宣布推出基于阿里云NAS的文件存储服务。得益于业界领先的阿里云分布式存储架构,融合NAS后的ZStack 2.6.0拥有高性能、高可靠、容量无限扩展、一键操作、按需...

ZStack社区版
39分钟前
1
0
崛起于Springboot2.X之Mongodb多数据源处理(35)

多数据源:4个mongodb库! 目录结构图: 1、添加pom依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId>......

木九天
45分钟前
0
0
如何获取显示器的EDID信息

Q1: 为什么要写这篇文章? A1:在最近的工作中遇到了不少问题,其中很多都是和EDID相关的。可以说,作为一家以“显示”为生的企业,我们时时刻刻在与EDID打交道。EDID这东西很简单,但是如果...

DB_Terrill
45分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部