欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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ù)器中,當訪問servlet時,服務(wù)器創(chuàng)建session對象同時會向瀏覽器寫入一個sessionId保存到cookie中,當瀏覽器關(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.登錄按鈕按下后 當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.登錄按鈕按下后 當rem被選中,且密碼正確時,將賬號密碼存入session
		if(rem.equals("on")){
			Users u2 = new Users(uPhone,uPwd);
			session.setAttribute("remSession", u2);
		}
		return "index";
	}
	
}

3.jsp頁面補充
這里主要看//5.當光標離開后調(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", 
		/* 當flag =0 提示用戶不存在
			當flag = 1 普通用戶
		 */
		success:function(flag){
			if(flag==0){
				phoneMsg.innerText = "請先注冊";
			}
		}
	}) 
//5.當光標離開后調(diào)用記住密碼的功能
remPwd(uPhone);
	
};

//5記住密碼
/*1.當phone光標離開后 當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}+"";
		//當賬號在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)文章

  • Java深入探索線程安全和線程通信的特性

    Java深入探索線程安全和線程通信的特性

    這篇文章主要介紹了Java線程安全和線程通信的特性,線程安全是多線程編程時的計算機程序代碼中的一個概念。在擁有共享數(shù)據(jù)的多條線程并行執(zhí)行的程序中,線程安全的代碼會通過同步機制保證各個線程都可以正常且正確的執(zhí)行,不會出現(xiàn)數(shù)據(jù)污染等意外情況
    2022-05-05
  • 手擼一個 spring-boot-starter的全過程

    手擼一個 spring-boot-starter的全過程

    這篇文章主要介紹了手擼一個 spring-boot-starter的全過程,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • Java Swing最詳細基礎(chǔ)知識總結(jié)

    Java Swing最詳細基礎(chǔ)知識總結(jié)

    這篇文章主要介紹了Java Swing最詳細基礎(chǔ)知識總結(jié),文中有非常詳細的代碼示例,對正在學(xué)習(xí)Java Swing的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-05-05
  • 解決springboot 獲取form-data里的file文件的問題

    解決springboot 獲取form-data里的file文件的問題

    這篇文章主要介紹了解決springboot 獲取form-data里的file文件的問題的相關(guān)資料,這里提供了詳細的解決步驟,需要的朋友可以參考下
    2017-07-07
  • maven繼承父工程統(tǒng)一版本號的實現(xiàn)

    maven繼承父工程統(tǒng)一版本號的實現(xiàn)

    這篇文章主要介紹了maven繼承父工程統(tǒng)一版本號的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 使用idea創(chuàng)建web框架和配置struts的方法詳解

    使用idea創(chuàng)建web框架和配置struts的方法詳解

    這篇文章主要介紹了使用idea創(chuàng)建web框架和配置struts的方法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • java程序員如何編寫更好的單元測試的7個技巧

    java程序員如何編寫更好的單元測試的7個技巧

    測試是開發(fā)的一個非常重要的方面,可以在很大程度上決定一個應(yīng)用程序的命運。良好的測試可以在早期捕獲導(dǎo)致應(yīng)用程序崩潰的問題,但較差的測試往往總是導(dǎo)致故障和停機。本文主要介紹java程序員編寫更好的單元測試的7個技巧。下面跟著小編一起來看下吧
    2017-03-03
  • 解決工具接口調(diào)用報錯:error:Unsupported Media Type問題

    解決工具接口調(diào)用報錯:error:Unsupported Media Type問題

    當遇到"UnsupportedMediaType"錯誤時,意味著HTTP請求的Content-Type與服務(wù)器期望的不匹配,比如服務(wù)器期待接收JSON格式數(shù)據(jù),而發(fā)送了純文本格式,常見的Content-Type類型包括text/html、application/json、multipart/form-data等
    2024-10-10
  • Springboot Redis設(shè)置key前綴的方法步驟

    Springboot Redis設(shè)置key前綴的方法步驟

    這篇文章主要介紹了Springboot Redis設(shè)置key前綴的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 基于Java實現(xiàn)文件和base64字符串轉(zhuǎn)換

    基于Java實現(xiàn)文件和base64字符串轉(zhuǎn)換

    這篇文章主要介紹了基于Java實現(xiàn)文件和base64字符串轉(zhuǎn)換,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-01-01

最新評論