久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

Java中session存儲(chǔ)Users對(duì)象實(shí)現(xiàn)記住密碼

瀏覽:95日期:2022-08-18 13:16:51

之前做過cookie實(shí)現(xiàn)記住密碼,這次換成session記住密碼又做了一遍,有很多收獲。本次博客分為兩部分。一部分是cookie和session的區(qū)別(面試經(jīng)常被問道);另一部分是sesion實(shí)現(xiàn)記住密碼,在Jsp頁面和Controller頁面的代碼編寫。

一、cookie和session區(qū)別

區(qū)別:

1.cookie是瀏覽器端技術(shù);將數(shù)據(jù)保存到瀏覽器中,不安全不可以保存中文保存時(shí)編碼: URLEncoder.encode();取值時(shí)解碼:URLDecoder.decode();。2.session是服務(wù)器端技術(shù);將數(shù)據(jù)保存到服務(wù)器中,當(dāng)訪問servlet時(shí),服務(wù)器創(chuàng)建session對(duì)象同時(shí)會(huì)向?yàn)g覽器寫入一個(gè)sessionId保存到cookie中,當(dāng)瀏覽器關(guān)閉,session里面的數(shù)據(jù)沒有刪除,而是保存sessionId的cookie丟失因此找不到數(shù)據(jù),安全

相同:兩者作用范圍都是一次會(huì)話(瀏覽器開啟到關(guān)閉)有效。

二、session實(shí)現(xiàn)記住密碼

分為3步。1.jsp頁面布局

Java中session存儲(chǔ)Users對(duì)象實(shí)現(xiàn)記住密碼

默認(rèn)rem選擇框是選中狀態(tài)

<form name='register' action='login.action' method='post'><div class='form_row'><label class='contact'><strong>Phone:</strong></label> <input type='text' name='uPhone' value='${param.uPhone }' onblur='phoneBlur(this.value);'/><span id='uPhoneMsg'></span></div><div class='form_row'><label class='contact'><strong>Pwd:</strong></label> <input type='text' name='uPwd' /><span id='uPwdMsg'>${flag }</span></div><div class='form_row'><div class='terms'><input type='checkbox' name='rem' checked='checked'>記住密碼<!-- <input type='checkbox' name='terms' /> Rember me --></div></div><div class='form_row'><input type='submit' value='login' /></div></form>

2.controller層邏輯處理我的代碼有兩處用到session,這里只看第二處即可。//2.登錄按鈕按下后 當(dāng)rem被選中,且密碼正確時(shí),將賬號(hào)密碼這個(gè)對(duì)象存入session

//5.1登錄@RequestMapping('login')public String login(String uPhone,String uPwd,String rem,Model model,HttpServletResponse response,HttpServletRequest request){HttpSession session = request.getSession();String flag = '1';String uId = us.selectUsersByPhone_PwdService(uPhone, uPwd);//判斷如果賬號(hào)密碼不存在 返回登錄頁面;存在,跳轉(zhuǎn)到首頁if(uId==null){flag='密碼錯(cuò)誤';request.setAttribute('flag', flag);return 'register';}else{Users u1 = us.selectUsersByIdService(uId);//1.只要登錄成功 就將users對(duì)象存入session中,為之后的過濾器使用session.setAttribute('handlerInterceptorSession', u1);//2.登錄按鈕按下后 當(dāng)rem被選中,且密碼正確時(shí),將賬號(hào)密碼存入sessionif(rem.equals('on')){Users u2 = new Users(uPhone,uPwd);session.setAttribute('remSession', u2);}return 'index';}}

3.jsp頁面補(bǔ)充這里主要看//5.當(dāng)光標(biāo)離開后調(diào)用記住密碼的功能邏輯是:用戶輸入賬號(hào)光標(biāo)離開后,從session中取值,如果賬號(hào)在session中存在,則獲取賬號(hào)對(duì)應(yīng)的密碼,將密碼賦值給輸入框。(前提是:rem選擇框是選中狀態(tài),在1.jsp頁面布局里面就設(shè)置好了)

<script>function phoneBlur(uPhone){var phoneMsg = document.getElementById('uPhoneMsg');phoneMsg.innerText='';$.ajax({type:'post',url:'phoneExist.action',data:{'uPhone':uPhone},dataType:'text', /* 當(dāng)flag =0 提示用戶不存在當(dāng)flag = 1 普通用戶 */success:function(flag){if(flag==0){phoneMsg.innerText = '請先注冊';}}}) //5.當(dāng)光標(biāo)離開后調(diào)用記住密碼的功能remPwd(uPhone);};//5記住密碼/*1.當(dāng)phone光標(biāo)離開后 當(dāng)rem被選中 從Remsession里面遍歷,獲取賬號(hào)對(duì)應(yīng)的密碼。 *///alert($('#rem').val());function remPwd(uPhone){//每次進(jìn)入 密碼先清空$('#uPwd').val('');var remVal = $('#rem').val();if(remVal=='on'){//第一次登錄會(huì)報(bào)異常,所以加''var sessionPhone= ${remSession.uPhone}+'';var sessionPwd= ${remSession.uPwd}+'';//當(dāng)賬號(hào)在session中可以查詢到,就將session中的密碼賦值給輸入框pwdif(sessionPhone==uPhone){$('#uPwd').val(sessionPwd);}}}</script>

至此,session存儲(chǔ)Users對(duì)象實(shí)現(xiàn)記住密碼功能完畢,更多相關(guān)Java session記住密碼內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 东安县| 会东县| 玉林市| 桂林市| 佳木斯市| 上林县| 江口县| 都江堰市| 高平市| 九江县| 九江市| 天祝| 彩票| 萨迦县| 南安市| 如皋市| 克拉玛依市| 扬中市| 曲靖市| 洞口县| 根河市| 清新县| 灵寿县| 盐津县| 方山县| 永兴县| 顺平县| 新昌县| 丰城市| 龙门县| 塔城市| 泽州县| 清徐县| 勃利县| 吉安县| 扬中市| 衡水市| 麻阳| 丽江市| 高唐县| 桦南县|