当前位置: 代码迷 >> Java Web开发 >> jsp cookie 封存密码 用浏览器清除cookie 后再刷新发先cookie不空
  详细解决方案

jsp cookie 封存密码 用浏览器清除cookie 后再刷新发先cookie不空

热度:9890   发布时间:2013-02-25 21:15:31.0
jsp cookie 保存密码 用浏览器清除cookie 后再刷新发先cookie不空

“---------------index.jsp--------------------”

<html>
<head>
<title>登陆</title>
</head>
<body>
<center>
<h1>
<font color="blue">
用户登录
</font>
</h1>
<hr>
<form action=1.jsp method=post>
<%!String name;%>  
<%!String pass; %>
<%!Cookie cookie;%>
<%@ page contentType="text/html;charset=gb2312"%>
<%
  Cookie cookies[]=request.getCookies();  
  if (cookies != null) {
  name=null;  
  pass=null;  
  for (int i = 0; i < cookies.length; i++) {  
  cookie = cookies[i];  
  if (cookie.getName().equals("cookiename")) {  
  name = cookie.getValue(); 
  }  
  if (cookie.getName().equals("cookiepass")) {  
  pass = cookie.getValue();
  }  
  }  
%>
用户名称:<input type="text" value=<%=name%> name=loginname><br>
密码: <input type="Password" value=<%=pass%> name=loginpass><br>
<%
  }
else
{
%>
用户名称:<input type="text" name=loginname ><br>
密码: <input type="Password" name=loginpass ><br>
<%
}
%>
<input type=checkbox name=rememberme1 value=on>记住用户名<br>
<input type=checkbox name=rememberme2 value=on>记住密码<br>
<input type=submit value="登陆">
<input type=reset value="重置"><BR>
</center>
</body>
</html>




“----------------1.jsp-----------------”
<%@ page contentType="text/html;charset=gb2312"%>
<%!String name;%>  
<%!String pass; %>
<%
String userName=request.getParameter("loginname");
String userPass=request.getParameter("loginpass");
String rememberMe1=request.getParameter("rememberme1");
String rememberMe2=request.getParameter("rememberme2");
boolean bool=false;
if (userName.equals("abcd") && userPass.equals("1234")){
  if(rememberMe1 != null && rememberMe1.equals("on")){
  Cookie myCookie1=new Cookie("cookiename",userName);
  myCookie1.setMaxAge(10);
  response.addCookie(myCookie1);
  }
  if(rememberMe2 != null && rememberMe2.equals("on")){
  Cookie myCookie2=new Cookie("cookiepass",userPass);
  myCookie2.setMaxAge(10);
  response.addCookie(myCookie2);
  }
  bool=true; 
  }  
  if(bool){  
  response.sendRedirect("login.jsp");  
  }
   
%>


第一次登陆
用户名:
密码:
后面是空白的
但是按下F5后就变成
用户名 :NULL
密码 :NULL 
并没有添加cookie为什么会这样,求没添加cookie刷新后是空白的


------解决方案--------------------------------------------------------
原因应该是你刷新后浏览器就会产生一个session,叫JSESSIONID,所以就有了你那个效果。

建议在判断name和pass是否为空,之后再执行
用户名称:
<input type="text" value=<%=name%> name=loginname>
<br>
密码:
<input type="Password" value=<%=pass%> name=loginpass>
  相关解决方案