Java高级项目实战之CRM系统用户登录功能实现

用户登录功能后台代码实现:

UserMapper接口查询方法定义

/**
 *
 * @param userName
 * @param userPwd
 * @param roleName
 * 查询用户记录
 * @return
 */
User queryUser(@Param("userName")String userName);

<!-- 查询用户 -->
<select id="queryUser" resultMap="BaseResultMap">
     select <include refid="Base_Column_List"/>
        from t_user where user_name =#{userName}
</select>

service层登录方法实现

 @Resource
private UserDao userDao;

 /**
 * 用户登录
 * @param userName
 * @param userPwd
 * @param roleName
 * @return
 */
@SuppressWarnings({ "unchecked", "rawtypes" })
public UserModel userLoginCheck(String userName,String userPwd){
 /**
     * 1.参数合法性校验
     * 2.查询用户 有效性校验
     * 3.密码校验
     * 4.返回用户模型信息
     */
 // 参数校验
    checkParam(userName,userPwd);
 // 执行查询

    User user=userDao.queryUser(userName);
 // 用户存在性校验
    AssertUtil.isTrue(null==user, "该用户不存在!");
    AssertUtil.isTrue(user.getIsValid()==0, "给用户已注销!");
 //密码校验
    AssertUtil.isTrue(!user.getUserPwd().equals(MD5Util.md5Method(userPwd)),"密码不正确!");
 // 构建用户信息模型
    UserModel userModel=buildUserModel(user);
 return userModel;
}

/**
 * 登录参数校验
 * @param userName
 * @param userPwd
 * @param roleName
 */
private void checkParam(String userName, String userPwd, Integer roleId) {
    AssertUtil.isTrue(StringUtil.isNullOrEmpty(userName), "用户名非空!");
    AssertUtil.isTrue(StringUtil.isNullOrEmpty(userPwd), "密码非空!");
}

/**
 * 构建用户登录数据模型
 * @param user
 * @return
 */
private UserModel buildUserModel(User user) {
    UserModel userModel=new UserModel();
    userModel.setRoleName(user.getRoleName());
    userModel.setUserName(user.getUserName());
    userModel.setTrueName(user.getTrueName());
    String userIdStr=UserIDBase64.encoderUserID(user.getId());
    userModel.setUserIdStr(userIdStr);
 return userModel;
}
 

UserController层

package com.shsxt.crm.controller;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import com.shsxt.base.BaseController;
import com.shsxt.base.ResultInfo;
import com.shsxt.base.exception.ParamException;
import com.shsxt.crm.model.UserModel;
import com.shsxt.crm.service.UserService;

@Controller
@RequestMapping("user")
public class UserController extends BaseController {

    @Resource
private UserService userService;
@RequestMapping("userLogin")
public @ResponseBody MessageModel userLogin(String userName,
        String userPwd){
    MessageModel resultInfo=null;
 try {
        UserModel userModel= userService.userLoginCheck(userName, userPwd);
        resultInfo=success();
        resultInfo.setResult(userModel);
 } catch (ParamsException e) {
        e.printStackTrace();
        resultInfo=failed(e.getMessage());
 }
 return resultInfo;
} 

}

前台js 控制表单提交

绑定提交按钮点击事件

// 提交绑定事件
$(function(){
    $("#btnLogin").click(function(){
 var userName=$("#userName").val();
 var userPwd=$("#userPwd").val();
 if(isEmpty(userName)){
 alert("用户名非空!");
 return;
 }

 if(isEmpty(userPwd)){
 alert("密码非空!");
 return;
 } 

 var param={};
        param.userName=userName;
        param.userPwd=userPwd;
             $.ajax({
            type:"post",
            url:"user/userLogin",
            data:param,
            dataType:"json",
            success:function(data){
 if(data.resultCode==200){
 /**
                     * 登录成功
                     * 写入cookie
                     */
                    $.cookie("userName",data.result.userName);
                    $.cookie("trueName",data.result.trueName);
                    $.cookie("userIdStr",data.result.userIdStr);
 // 执行跳转
 window.location.href="main";
 }else{
 alert(data.msg);
 }
 }
 })
 })
})

部署项目,执行登录操作

登录成功 cookie 写入成功

登录成功,跳转至后台管理页面

欢迎关注SXT明辉,接下来我再回给大家奉上CRM系统之系统退出,请持续关注。来尚学堂学真正实用的Java技术。

原文地址:https://www.cnblogs.com/shsxt/p/12636228.html

时间: 2024-10-14 04:25:26

Java高级项目实战之CRM系统用户登录功能实现的相关文章

Java Drp项目实战——Drp知多少

是什么 Drp是Distribution Resource Planning的缩写,意思是分销资源计划,它是用来管理企业的运行于Internet上的分销网络的系统,是以商业流程优化为基础,它的核心是销售和库存总和控制.这个分销系统或者说是分销体系,它的使用者包括一个大型企业的内部.各个分公司.各级分销商等,它的作用就在于即时的掌握各地的销售信息流.财务资金流.库存信息等一些功能. 产生背景是什么 知道了Drp是什么,我们还需要了解下它的开发背景是什么,为什么要开发这样的一个系统呢. 这个原因还是

java高级软件架构师实战视频教程 Spring+Mybatis+SpringMVC+Ehcache+Memcached+Redis+Nginx+Varnish+ActiveMQ+Keepalived+MySQL+MongoDB

java高级软件架构师实战阶段1视频教程 迅雷下载  百度云 第001节:整体课程概览第002节:分模块.分工程管理第003节:多模块多Web应用合并War包第004节:Git基本原理和安装配置使用第005节:TortoiseGit的本地使用第006节:Egit的本地使用第007节:远程使用以及冲突解决第008节:基本业务功能和数据字典第009节:搭建基础的开发环境第010节:Spring+Mybatis实现DAO第011节:Mybatis的分页实现第012节:Service的实现以及模块化第0

JAVA Drp项目实战—— Unable to compile class for JSP 一波三折

交代下背景,电脑系统是64位的,用的是64位的Tomcat,安装是32位的Myeclipse10,java环境也是32位的,Tomcat在开始启动时会报这样一个错误,"Can't load IA 64-bit .dll on a AMD32-bit platform",但是不耽误使用,最近在敲Drp项目中用到了底层接口的几个方法,这个错误导致项目不能正常运行了,所以就将64位的Tomcat换成了与java环境一样的32位的Tomcat,上面的问题就顺利解决了,于是继续自己的开发,但是当

Java小项目之:投票系统

Java小项目之:投票系统今天给大家带来的是java编写的投票小系统,代码简易,适合初学者练手!代码展示:package com.tarena.wgh.servlet; import java.io.IOException;import java.io.PrintWriter;import java.util.*; import javax.servlet.ServletContext;import javax.servlet.ServletException;import javax.serv

Linux系统裁减之,制作一个极度精简的Linux-4-为精简的Linux 系统增加用户登录功能

第4章 为精简的Linux 系统增加用户登录功能 4.1下载mingetty和login程序源码 本文使用的CentOS 5.11的源代码都在官方源码网站http://vault.centos.org可以下载, 到http://vault.centos.org/5.11/os/Source/查找mingetty和login程序,如下图: ? ? mingetty和login程序分别属于mingetty-1.07-5.2.2和util-linux-2.13-0.59.el5_8软件包: [[ema

Struts+Hibernate+Spring实现用户登录功能

Struts+Hibernate+Spring实现用户登录功能 通过登录案例实现三大框架之间的整合,登录功能是任何系统和软件必不可少的一个模块,然而通过这个模块来认识这些复杂的框架技术,理解数据流向和整个设计思路是相当容易的.只有在掌握了这些小模块的应用后,才能轻松的去研究和设计出更有创意的,更加严密的系统. 本人通过学习,实现了这个小功能,现在将实现思想和过程总结如下.希望各位大神朋友多多审查,有什么不到位的地方,请通过邮件告诉我([email protected]),在此表示感谢:新手朋友,

[转]你会做Web上的用户登录功能吗?

转自:http://coolshell.cn/articles/5353.html Web上的用户登录功能应该是最基本的功能了,可是在我看过一些站点的用户登录功能后,我觉得很有必要写一篇文章教大家怎么来做用户登录功能.下面的文章告诉大家这个功能可能并没有你所想像的那么简单,这是一个关系到用户安全的功能,希望大家能从下面的文章中能知道什么样的方法才是一个好的用户登录功能.以下内容,转载时请保持原文一致,并请注明作者和出处. 用户名和口令 首先,我们先来说说用户名和口令的事.这并不是本站第一次谈论这

如何设计安全的用户登录功能

用户登录功能是Web应用系统具备的最基本的功能,关系到用户数据和应用系统数据的安全,设计一个安全的用户登录功能,涉及到以下几个方面的内容. (一) 老生常谈——口令 1. 口令长度与复杂度限制 限制用户输入一些非常容易被破解的口令,比如qwert.asdfg.123456.password之类的,参考twitter和 facebook的设计,为这样的口令做一个黑名单,不允许使用黑名单中的口令.同时,还对用户口令的长度.复杂度进行检查,要求用户设置足够长度,且复 杂度符合安全策略的口令. 在口令安

使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(三)——使用Flask-Login库实现登录功能

使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(一)——创建应用 使用 Flask 框架写用户登录功能的Demo时碰到的各种坑(二)——使用蓝图功能进行模块化 本次示例的源码下载:点击下载 Flask-Login 库的中文文档:点击进入 Flask-Login 库的新版英文文档:点击进入 一.导入并初始化 Flask-Login 库 在项目根目录下的/demo/__init__.py 文件的头部,import 进 flask_login 库 from flask_login imp