最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2021年01月15日 08:48:01   作者:烤魚不愛火鍋  
這篇文章主要介紹了Java中session存儲Users對象實現(xiàn)記住密碼,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

之前做過cookie實現(xiàn)記住密碼,這次換成session記住密碼又做了一遍,有很多收獲。
本次博客分為兩部分。一部分是cookie和session的區(qū)別(面試經(jīng)常被問道);另一部分是sesion實現(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對象同時會向瀏覽器寫入一個sessionId保存到cookie中,當(dāng)瀏覽器關(guān)閉,session里面的數(shù)據(jù)沒有刪除,而是保存sessionId的cookie丟失因此找不到數(shù)據(jù),安全。

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

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

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

在這里插入圖片描述

默認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" class="contact_input" name="uPhone" id="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" class="contact_input" name="uPwd" id="uPwd"/>
		<span id="uPwdMsg">${flag }</span>
	</div>
	<div class="form_row">
		<div class="terms">
			<input type="checkbox" name="rem" id="rem" checked="checked">記住密碼
	<!-- <input type="checkbox" name="terms" id="terms"/> Rember me -->
		</div>
	</div>
	<div class="form_row">
		<input type="submit" class="register" 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被選中,且密碼正確時,將賬號密碼存入session
		if(rem.equals("on")){
			Users u2 = new Users(uPhone,uPwd);
			session.setAttribute("remSession", u2);
		}
		return "index";
	}
	
}

3.jsp頁面補充
這里主要看//5.當(dāng)光標離開后調(dià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)光標離開后調(diào)用記住密碼的功能
remPwd(uPhone);
	
};

//5記住密碼
/*1.當(dāng)phone光標離開后 當(dāng)rem被選中 從Remsession里面遍歷,獲取賬號對應(yīng)的密碼。 */
//alert($("#rem").val());
function remPwd(uPhone){
	//每次進入 密碼先清空
	$("#uPwd").val("");
	var remVal = $("#rem").val();
	if(remVal=="on"){
		//第一次登錄會報異常,所以加""
		var sessionPhone= ${remSession.uPhone}+"";
		var sessionPwd= ${remSession.uPwd}+"";
		//當(dāng)賬號在session中可以查詢到,就將session中的密碼賦值給輸入框pwd
		if(sessionPhone==uPhone){
			$("#uPwd").val(sessionPwd);
		}
	}
}
</script>

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

相關(guān)文章

  • 詳解IntelliJ IDEA中TortoiseSVN修改服務(wù)器地址的方法

    詳解IntelliJ IDEA中TortoiseSVN修改服務(wù)器地址的方法

    這篇文章主要介紹了詳解IntelliJ IDEA中TortoiseSVN修改服務(wù)器地址的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • Spring學(xué)習(xí)教程之AOP模塊的概述

    Spring學(xué)習(xí)教程之AOP模塊的概述

    AOP 從功能的角度來講,可能看作OOP編程方式的一種補充,提供了一種不同的代碼或者系統(tǒng)組織方式,下面這篇文章主要給大家介紹了關(guān)于Spring學(xué)習(xí)教程之AOP模塊的相關(guān)資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2018-05-05
  • @CacheEvict 清除多個key的實現(xiàn)方式

    @CacheEvict 清除多個key的實現(xiàn)方式

    這篇文章主要介紹了@CacheEvict 清除多個key的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Java深度學(xué)習(xí)庫DJL實現(xiàn)Python的NumPy方式

    Java深度學(xué)習(xí)庫DJL實現(xiàn)Python的NumPy方式

    本文介紹了DJL庫的背景和基本功能,包括NDArray的創(chuàng)建、數(shù)學(xué)運算、數(shù)據(jù)獲取和設(shè)置等,同時,還展示了如何使用NDArray進行數(shù)據(jù)預(yù)處理和模型推理部署
    2025-02-02
  • Mybatis Plus 大數(shù)據(jù)游標分頁的實現(xiàn)

    Mybatis Plus 大數(shù)據(jù)游標分頁的實現(xiàn)

    使用MyBatis Plus的游標分頁,我們可以輕松應(yīng)對大數(shù)據(jù)量的場景,本文主要介紹了Mybatis Plus 大數(shù)據(jù)游標分頁的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下
    2024-07-07
  • Java 8對LinkedList元素進行排序的方法詳解

    Java 8對LinkedList元素進行排序的方法詳解

    在Java中,LinkedList是一種基于鏈表的數(shù)據(jù)結(jié)構(gòu),與ArrayList相比,它在進行插入和刪除操作時表現(xiàn)出更好的性能,然而,LinkedList的元素排序也是開發(fā)中常見的需求之一,本文介紹了Java8對LinkedList元素進行排序的方法,需要的朋友可以參考下
    2024-11-11
  • java如何實現(xiàn)判斷文件的真實類型

    java如何實現(xiàn)判斷文件的真實類型

    本篇文章主要介紹了java如何實現(xiàn)判斷文件的真實類型,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • SpringBoot使用ResponseBodyEmitter處理流式日志和進度條

    SpringBoot使用ResponseBodyEmitter處理流式日志和進度條

    這篇文章主要為大家詳細介紹了SpringBoot如何使用ResponseBodyEmitter處理流式日志和進度條,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-02-02
  • 淺談JAVA實現(xiàn)選擇排序,插入排序,冒泡排序,以及兩個有序數(shù)組的合并

    淺談JAVA實現(xiàn)選擇排序,插入排序,冒泡排序,以及兩個有序數(shù)組的合并

    這篇文章主要介紹了JAVA實現(xiàn)選擇排序,插入排序,冒泡排序,以及兩個有序數(shù)組的合并,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • java數(shù)據(jù)類型和運算符的深入講解

    java數(shù)據(jù)類型和運算符的深入講解

    這篇文章主要給大家介紹了關(guān)于java數(shù)據(jù)類型和運算符的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03

最新評論

阿坝| 广东省| 营口市| 翁牛特旗| 中西区| 洪雅县| 桐城市| 腾冲县| 哈密市| 陇川县| 沙河市| 佳木斯市| 新巴尔虎右旗| 阿坝| 泽库县| 湖南省| 东辽县| 佛学| 临桂县| 濉溪县| 漳浦县| 贺州市| 新沂市| 山西省| 辽宁省| 思茅市| 手机| 本溪| 天长市| 梅河口市| 分宜县| 和龙市| 永春县| 微博| 安岳县| 九龙坡区| 巴中市| 东台市| 武定县| 二手房| 台州市|