亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

cookie保存后取值總是上一次的

<%@?page?language="java"?contentType="text/html;?charset=utf-8"
????pageEncoding="utf-8"%>
<!DOCTYPE?html?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN"?"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta?http-equiv="Content-Type"?content="text/html;?charset=utf-8">
<title>Insert?title?here</title>
</head>
<body>

<%
	request.setCharacterEncoding("utf-8");

System.out.println(request.getParameter("userName"));
System.out.println(request.getParameter("password"));
	String[]?remember=request.getParameterValues("remember");
	if(remember!=null&&remember.length>0){
		String?userName=request.getParameter("userName");
		String?password=request.getParameter("password");//getParameter是去?name的值;?getAttribute指的是取鍵值對啊
		Cookie?userNameCookie=new?Cookie("userName",userName);
		Cookie?passwordCookie=new?Cookie("password",password);
		userNameCookie.setMaxAge(86400);
		passwordCookie.setMaxAge(86400);
		response.addCookie(userNameCookie);
		response.addCookie(passwordCookie);
		
	}else
	????{
	????????Cookie[]?cookies?=?request.getCookies();
	????????if(cookies!=null&&cookies.length>0)
	????????{
	???????????for(Cookie?c:cookies)
	???????????{
	??????????????if(c.getName().equals("userName")||c.getName().equals("password"))
	??????????????{
	??????????????????c.setMaxAge(0);?//設置Cookie失效
	??????????????????response.addCookie(c);?//重新保存。
	??????????????}
	???????????}
	????????}
	?????}
	
	request.getRequestDispatcher("user.jsp").forward(request,response);
	
%>
<!--?
<a??target="_blank"?h?r?e?f="user.jsp">c?h?a?n?k??an</a>
?-->
</body>
</html>

老師,遇到一個奇怪的事; ?我用cookie保存用戶名和密碼后取值的時候卻總是取出的上一次的值;?

第一次: ?userName= user1 ? password=password1; 但是取出來為空;

第二次:? userName= user2 ? password=password2; 但是取出來確為第一次保存的值: ?user1, password2


在dologin.jsp頁面 , 第一次使用直接服務器跳轉: request.getRequestDispatcher("user.jsp").forward(request,respon);

這樣的話 在user.jsp頁面取值取出的總是上一次保存的cookie;


第二次我參照您的方法? <a herf="user.jsp"> userinfo</a> ?這樣取出來的值卻是正常的; ?

老師 請問這是為什么了?


正在回答

2 回答

這個問題我也問了我的老師. ??

當然也非常謝謝您;@pang

0 回復 有任何疑惑可以回復我~

??request.getRequestDispatcher("user.jsp").forward(request,response);使用這句話把request中的值又傳回來了,也就是request里還有remember的值,remember的值不為空就不會執行else后面的語句,沒有移除cookie后重新添加,導致讀的還是原來的值。而使用超鏈接就不會發生這種情況。

0 回復 有任何疑惑可以回復我~
#1

餃子_ 提問者

這個問題我也問了我的老師. 當然也非常謝謝您;@pang
2015-03-24 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

cookie保存后取值總是上一次的

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號