Java CRM系統(tǒng)用戶(hù)登錄功能實(shí)現(xiàn)代碼實(shí)例
用戶(hù)登錄功能后臺(tái)代碼實(shí)現(xiàn):
UserMapper接口查詢(xún)方法定義
/**
*
* @param userName
* @param userPwd
* @param roleName
* 查詢(xún)用戶(hù)記錄
* @return
*/
User queryUser(@Param("userName")String userName);
<!-- 查詢(xún)用戶(hù) -->
<select id="queryUser" resultMap="BaseResultMap">
select <include refid="Base_Column_List"/>
from t_user where user_name =#{userName}
</select>
service層登錄方法實(shí)現(xiàn)
@Resource
private UserDao userDao;
/**
* 用戶(hù)登錄
* @param userName
* @param userPwd
* @param roleName
* @return
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
public UserModel userLoginCheck(String userName,String userPwd){
/**
* 1.參數(shù)合法性校驗(yàn)
* 2.查詢(xún)用戶(hù) 有效性校驗(yàn)
* 3.密碼校驗(yàn)
* 4.返回用戶(hù)模型信息
*/
// 參數(shù)校驗(yàn)
checkParam(userName,userPwd);
// 執(zhí)行查詢(xún)
User user=userDao.queryUser(userName);
// 用戶(hù)存在性校驗(yàn)
AssertUtil.isTrue(null==user, "該用戶(hù)不存在!");
AssertUtil.isTrue(user.getIsValid()==0, "給用戶(hù)已注銷(xiāo)!");
//密碼校驗(yàn)
AssertUtil.isTrue(!user.getUserPwd().equals(MD5Util.md5Method(userPwd)),"密碼不正確!");
// 構(gòu)建用戶(hù)信息模型
UserModel userModel=buildUserModel(user);
return userModel;
}
/**
* 登錄參數(shù)校驗(yàn)
* @param userName
* @param userPwd
* @param roleName
*/
private void checkParam(String userName, String userPwd, Integer roleId) {
AssertUtil.isTrue(StringUtil.isNullOrEmpty(userName), "用戶(hù)名非空!");
AssertUtil.isTrue(StringUtil.isNullOrEmpty(userPwd), "密碼非空!");
}
/**
* 構(gòu)建用戶(hù)登錄數(shù)據(jù)模型
* @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;
}
}
前臺(tái)js控制表單提交
綁定提交按鈕點(diǎn)擊事件
// 提交綁定事件
$(function(){
$("#btnLogin").click(function(){
var userName=$("#userName").val();
var userPwd=$("#userPwd").val();
if(isEmpty(userName)){
alert("用戶(hù)名非空!");
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){
/**
* 登錄成功
* 寫(xiě)入cookie
*/
$.cookie("userName",data.result.userName);
$.cookie("trueName",data.result.trueName);
$.cookie("userIdStr",data.result.userIdStr);
// 執(zhí)行跳轉(zhuǎn)
window.location.href="main" rel="external nofollow" ;
}else{
alert(data.msg);
}
}
})
})
})
部署項(xiàng)目,執(zhí)行登錄操作

登錄成功 cookie 寫(xiě)入成功

登錄成功,跳轉(zhuǎn)至后臺(tái)管理頁(yè)面

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JAVA基于Arrays.sort()實(shí)現(xiàn)數(shù)組升序和降序
這篇文章主要介紹了JAVA基于Arrays.sort()實(shí)現(xiàn)數(shù)組升序和降序,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06
Java線(xiàn)程安全問(wèn)題小結(jié)_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了Java線(xiàn)程安全問(wèn)題小結(jié)的相關(guān)資料,需要的朋友可以參考下2017-05-05
Spring Security實(shí)現(xiàn)基于角色的訪(fǎng)問(wèn)控制框架
Spring Security是一個(gè)功能強(qiáng)大的安全框架,提供了基于角色的訪(fǎng)問(wèn)控制、身份驗(yàn)證、授權(quán)等安全功能,可輕松保護(hù)Web應(yīng)用程序的安全,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2023-04-04
解析Oracle數(shù)據(jù)庫(kù)中的對(duì)象集合schema
這篇文章主要介紹了Oracle數(shù)據(jù)庫(kù)中的對(duì)象集合schema,是Oracle數(shù)據(jù)庫(kù)入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-11-11
在?Java?中將Object?轉(zhuǎn)換為?Int的四種方法
這篇文章主要介紹了在Java中如何將?Object?轉(zhuǎn)換為Int,本文研究了在?Java中將Object轉(zhuǎn)換為int的四種不同方法,結(jié)合示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05
mybatis?返回Map類(lèi)型key默認(rèn)為大寫(xiě)問(wèn)題
這篇文章主要介紹了mybatis?返回Map類(lèi)型key默認(rèn)為大寫(xiě)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
spring-AOP 及 AOP獲取request各項(xiàng)參數(shù)操作
這篇文章主要介紹了spring-AOP 及 AOP獲取request各項(xiàng)參數(shù)的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07

