日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

crm首页功能和用户登录

發布時間:2024/1/18 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 crm首页功能和用户登录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

首頁功能

用戶登錄


首頁功能

?

流程圖

?整體思路:輸入url,跳轉發送請求到IndexController,在indexController請求轉發到跳轉到index.jsp頁面。index.jsp頁面通過window.location去請求Usertroller中的toLogin方法,toLogin方法請求轉發跳轉到login.jsp登錄頁面。

1.輸入url跳轉請求,請求IndexController。

2.請求到IndexController,接著直接請求轉發跳轉到index.jsp。

IndexController

package com.bjpowernode.crm.web.controller;import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping;@Controller public class IndexController {/*理論上,給Controller方法分配url:http://127.0.0.1:8080/crm/為了簡便,協議://ip:port/應用名稱必須省去,用/代表應用根目錄下的/*/@RequestMapping("/")public String index(){//請求轉發return "index";} }

?請求轉發這里有視圖解析器,所以可以省略,完整的為/WEB-INF/pages/index.jsp,訪問這個頁面。

index.jsp

該jsp在tomcat運行是個頁面響應給瀏覽器,該頁面通過window.location發請求訪問UserController中的toLogin方法。(響應信息返回,一個資源目錄對應一個controller,所以login.jsp是在user目錄下,我們也新創建個UserController)

UserController

@Controller public class UserController {@Autowiredprivate UserService userService;/*** url要和controller方法處理完請求之后,響應信息返回的頁面的資源目錄保持一致*/@RequestMapping("/settings/qx/user/toLogin.do")public String toLogin(){//請求轉發到登錄頁面return "settings/qx/user/login";} }

請求轉發到login.jsp后,頁面響應給瀏覽器。

用戶登錄

?

整體思路: 輸入用戶名和密碼點登錄按鈕,發請求到UserController,UserController調用service層和mapper層,去查詢并返回user對象。對返回的user對象,判斷非空、是否過期、賬號狀態、ip是否符合等條件。都符合則登錄成功,否則登錄失敗。給前端返回響應信息。

tbl_user表

LoginDto

?LoginDto繼承User實體類,帶上isRemPwd表示是否記住密碼。

UserController

返回ReturnObject對象,封裝code和message。

@Controller public class UserController {@Autowiredprivate UserService userService;@RequestMapping("/settings/qx/user/Login.do")@ResponseBodypublic ReturnObject login(LoginDto loginDto, HttpServletRequest request, HttpServletResponse response, HttpSession session){ // //把request封裝進loginDto // loginDto.setData(request);User user = userService.QueryByLoginActAndPwd(loginDto);//根據返回的user對象,進行非空、過期、狀態、ip的判斷if (user != null){//把時間轉成字符串,用String的compareTo方法比較大小//獲取當前時間Date date = new Date();//調用工具類中方法 將日期轉成數據庫中 日期的格式String nowStr = DateTimeUtils.formatDateTime(date);//判斷是否過期if(nowStr.compareTo(user.getExpireTime()) > 0){//賬號過期登陸失敗return new ReturnObject(Constants.RETURN_OBJECT_CODE_FAIL,"賬號已過期");} else if ("0".equals(user.getLockState())) {//賬號被鎖定登陸失敗return new ReturnObject(Constants.RETURN_OBJECT_CODE_FAIL,"賬號鎖定");} else if (! user.getAllowIps().contains(request.getRemoteAddr())) {//ip不符合return new ReturnObject(Constants.RETURN_OBJECT_CODE_FAIL,"ip不符合");}else {//登陸成功ReturnObject returnObject = new ReturnObject(Constants.RETURN_OBJECT_CODE_SUCCEED, "登陸成功");//把用戶名存到session中session.setAttribute(Constants.SESSION_USER,user);//判斷isRemPwd,是否需要把用戶名密碼存到cookieif ("true".equals(loginDto.getIsRemPwd())){Cookie c1 = new Cookie("loginAct", loginDto.getLoginAct());c1.setMaxAge(10*24*60*60);response.addCookie(c1);Cookie c2 = new Cookie("loginPwd", loginDto.getLoginPwd());c2.setMaxAge(10*24*60*60);response.addCookie(c2);}else {//沒有選擇記住密碼,刪除cookieCookie c1 = new Cookie("loginAct", "1");c1.setMaxAge(0);response.addCookie(c1);Cookie c2 = new Cookie("loginPwd", "1");c1.setMaxAge(0);response.addCookie(c2);}return returnObject;}}else{//user為空,返回相應的ReturnObject對象return new ReturnObject(Constants.RETURN_OBJECT_CODE_FAIL,"用戶名或密碼錯誤");}} }

controller記得要被springmvc的配置文件或配置類掃描到

UserServiceImpl?

@Service("UserService") public class UserServiceImpl implements UserService {@Autowiredprivate UserMapper userMapper;/*** 根據用戶名和密碼查詢user對象* @param loginDto* @return*/@Overridepublic User QueryByLoginActAndPwd(LoginDto loginDto) {//取出user的用戶名和密碼,封裝為map<String ,Object>String loginAct = loginDto.getLoginAct();String loginPwd = loginDto.getLoginPwd();Map<String, Object> map = new HashMap<>();map.put("loginAct",loginAct);map.put("loginPwd",loginPwd);//調用mapper查詢方法User user = userMapper.selectByLoginActAndPwd(map);return user;} }

?UserMapper

public interface UserMapper {/*** 根據用戶名和密碼查詢用戶* @param map* @return*/User selectByLoginActAndPwd(Map<String,Object> map); }

Mapper接口要么添加@Mapper注解,要么讓spring配置文件掃描到sql映射文件。

當查詢完返回到UserController,做一系列判斷,返回登錄成功或失敗的ReturnObject對象。

其中判斷過期時間,通過把當前時間轉成數據庫對應格式的時間的字符串,用string中的compareTo方法比較大小來判斷是否過期。

返回的ReturnObject中的code,單獨寫在Constants中,需要時直接調用。

最后返回給前端json,要帶上@RequestBody注解。

需要注意的是:

發送 登錄請求后,前端 接收到返回對象,code為1瀏覽器請求WorkbenchIndexController,來跳轉到主頁面index.jsp。

@Controller public class WorkbenchIndexController {@RequestMapping("/workbench/index.do")public String index(){//跳轉到主頁面return "workbench/index";} }

總結

以上是生活随笔為你收集整理的crm首页功能和用户登录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。