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

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

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

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

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

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

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

Java中session存儲Users對象實(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被選中,且密碼正確時,將賬號密碼這個對象存入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);//判斷如果賬號密碼不存在 返回登錄頁面;存在,跳轉(zhuǎn)到首頁if(uId==null){flag='密碼錯誤';request.setAttribute('flag', flag);return 'register';}else{Users u1 = us.selectUsersByIdService(uId);//1.只要登錄成功 就將users對象存入session中,為之后的過濾器使用session.setAttribute('handlerInterceptorSession', u1);//2.登錄按鈕按下后 當(dāng)rem被選中,且密碼正確時,將賬號密碼存入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)用記住密碼的功能邏輯是:用戶輸入賬號光標(biāo)離開后,從session中取值,如果賬號在session中存在,則獲取賬號對應(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里面遍歷,獲取賬號對應(yīng)的密碼。 *///alert($('#rem').val());function remPwd(uPhone){//每次進(jìn)入 密碼先清空$('#uPwd').val('');var remVal = $('#rem').val();if(remVal=='on'){//第一次登錄會報異常,所以加''var sessionPhone= ${remSession.uPhone}+'';var sessionPwd= ${remSession.uPwd}+'';//當(dāng)賬號在session中可以查詢到,就將session中的密碼賦值給輸入框pwdif(sessionPhone==uPhone){$('#uPwd').val(sessionPwd);}}}</script>

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

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 龙陵县| 景德镇市| 宣恩县| 玉林市| 方正县| 蒲江县| 临潭县| 定日县| 喀喇| 都兰县| 尼玛县| 宁强县| 新竹县| 武鸣县| 衡阳市| 海林市| 崇礼县| 白玉县| 盘山县| 丹凤县| 调兵山市| 阿巴嘎旗| 佛坪县| 伊宁市| 金门县| 罗田县| 颍上县| 余庆县| 崇信县| 芦溪县| 玉环县| 永州市| 高雄县| 平南县| 灵宝市| 高密市| 固镇县| 陇川县| 宁南县| 太仆寺旗| 马公市|