乾貨來襲,java使用者登入與登出(前臺+後臺 框架springboot)
阿新 • • 發佈:2019-01-01
任何專案都存在使用者,自然也存在著使用者的登入和登出。使用者登入和登出的前臺和後臺頁面設定網上有很多版本,但大多數沒有整理。現在將前臺與後臺程式碼簡單整理下,供大家參考 ,有什麼問題可以在評論區回覆我就行了!
圖片說明:圖(1)為登入頁面;圖(2)為登入報錯頁面,當用戶輸錯使用者名稱或者密碼時,登入報錯如紅字部份所示;圖(3)為選擇記住使用者名稱後登出後返回的頁面。
程式碼說明:第一部分為前臺ftl頁面程式碼,第二部分為後臺controller程式碼,頁面樣式你們自己調整下。
專案框架:springboot
頁面:ftl
圖片如下所示:
(1)
(2)
(3)
<div class="row"> <div class="col-md-4 col-md-offset-4"> <div class="account-box"> <form role="form" action="/user/login" method="post" id="login_form"> <div class="form-group"> <label for="yhm">使用者名稱</label> <input type="text" id="yhm" name="yhm" class="form-control" > </div> <div class="form-group"> <label for="mm">密碼</label> <input type="password" id="mm" name="mm" class="form-control" > </div> <div class="checkbox pull-left"> <label><input type="checkbox" id="remeberyhm">記住使用者名稱</label> <span style="color:red;"> <#if errMsg??> 使用者名稱或密碼錯誤 </#if> </span> </div> <button class="btn btn btn-primary pull-right" type="button" onclick="remeber()" >登 錄</button> </form> <a class="forgotLnk" href="index.html"></a> <div class="row-block"> <div class="row"></div> </div> </div> </div> <script type="text/javascript"> $(function () { var yhm = $.cookie('yhm'); var mm = $.cookie('mm'); //頁面載入的時候從cookie中取出使用者名稱和密碼填充對應的輸入框 $('#yhm').val(yhm); $("#mm").val(mm); //選中儲存祕密的複選框 if(yhm != null && yhm != '' && mm != null && mm != ''){ $("#remeberyhm").attr('checked',true); } }); function remeber(){ var yhm = $("#yhm").val(); var mm = $("#mm").val(); //判斷複選框的選擇狀態新增cookie if ($("#remeberyhm").is(":checked")) { //儲存一個帶7天期限的cookie $.cookie("yhm", yhm, { expires: 7 }); $.cookie("mm", mm, { expires: 7 }); }else { $.cookie("yhm", "", { expires: -1 }); $.cookie("mm", "", { expires: -1 }); } //提交表單 $("#login_form").submit(); } //登入按鈕與鍵盤迴車繫結 function IsEnterKeyPress(){ var lKeyCode = (navigator.appname=="Netscape")?event.which:window.event.keyCode; if(lKeyCode == 13){ remeber(); } } </script>
/** * 使用者登入 * @param st * @param request * @return */ @RequestMapping(value="/login") public ModelAndView login(User st, QueryParametersVo qvo, HttpServletRequest request){ ModelAndView result = new ModelAndView("main"); qvo.setPageNum(0); qvo.setPageSize(0); ModelAndView errResult = new ModelAndView("login_new"); List<Jscd> fristList = null; try { User user = userService.login(st);//登入 if(user!=null){ fristList = JscdService.getByJsId(user.getRole().getRoleid());//根據角色id查詢對應的選單集合 request.getSession().setAttribute("yh", user);//將使用者資訊放到session中 request.getSession().setMaxInactiveInterval(3600);//設定session儲存時間,以秒為單位,3600=60*60即為60分鐘 result.addObject("list", new PageInfo<Jscd>(fristList)); return result; }else{ errResult.addObject("errMsg","使用者名稱或密碼錯誤"); } } catch (Exception e) { errResult.addObject("errMsg", "資料異常!"); e.printStackTrace(); } return errResult; } /** * 使用者登出 * @param request * @return */ @SuppressWarnings("unused") @RequestMapping(value="/logout") public ModelAndView logout(HttpServletRequest request){ ModelAndView result = new ModelAndView("login_new"); HttpSession session = request.getSession();//獲取當前session if(session!=null){ User user = (User)session.getAttribute("yh");//從當前session中獲取使用者資訊 session.invalidate();//關閉session } return result; }