关于jsessionid和Cookie的问题
 老师要求我们做了个学生管理系统,登录页面的表单提交,是这样写的    <form name="loginForm" action="DOlogin.jsp" method="post" >
        <p>用户名:<input type="text"  name="userNa" id="001" size="30" value="<%=username %>" /></p>
        <p>密&nbsp;&nbsp;&nbsp;码:<input type="password" name="passWo" id="002" size="30" value="<%=passWord %>"/></p>
        <p><input type="checkbox" name="isuser" />十天内免登陆</p>
        <input  type="submit" name="subm" value="登录" />
    </form> 
        java代码是这样的:
        <%
request.setCharacterEncoding("UTF-8");
response.setCharacterEncoding("UTF-8");

String username="";
String passWord="";
Cookie[] coo=request.getCookies();
if(coo!=null&&coo.length>0){
//System.out.print("cookie");
//System.out.println(coo.length);
    for(Cookie c:coo){
   // System.out.println(c.getName()+"login");
        System.out.println(c.getName());

       if(c.getName().equals("name")){
       System.out.print(c.getValue());
       username=c.getValue(); // 为啥是空值呢
       }
      // else if(c.getName().equals("password")){
        System.out.println(username);//这个是空值
        System.out.println(passWord);//这个也是空值
        passWord=c.getValue();
      // }      
    }
}
%>
登录验证和用Cookie保存数据的网页是这样写的:
    Users user=new Users();
    String userName=request.getParameter("userNa").trim();  
    String passwo=request.getParameter("passWo").trim(); 
    user.setUserName(userName);
    user.setPassWord(passwo);


    Users_BIZ ub=new Users_BIZ_Impl();
    boolean flag=ub.login(user);
    if(flag){ 

    response.sendRedirect("DOinfo.jsp");
    //session.setAttribute("user", user); 
    }else{   
    response.sendRedirect("login.jsp");
    }
    //创建cookie
    String[] isuser = request.getParameterValues("isuser");
    if(isuser!=null&&isuser.length>0){
    System.out.println("乖 听话");
        Cookie usernameCookie=new Cookie("name",userName);
        Cookie passwordCookie=new Cookie("password",passwo);
       System.out.println(usernameCookie.getValue()+"啊啊啊啊啊");

        usernameCookie.setMaxAge(86400);   
        passwordCookie.setMaxAge(86400);  
        response.addCookie(usernameCookie);
        response.addCookie(passwordCookie); 
        Cookie[] cooo=new Cookie[]{};
        System.out.println(cooo.length+"Cookie的长度") ;

    }else{
        Cookie[] us=request.getCookies();
        if(us!=null&&us.length>0){
           for(Cookie co:us){
             if(co.getName().equals("name")||co.getName().equals("password")){

                co.setMaxAge(0);
                response.addCookie(co);            
             }
           }
        }
     }   
%>
为啥关闭网页或者重新登录的时候获得不到cookie里面的值呢?
我明明穿过来两个值为啥cookie里只有一个叫jsessionid的值,这家伙是个什么东西?

小弟穷!一个c币,新手脑门磕地板跪求真相!!求大神指点!!

1个回答

cookie的设置应该在这段话的前面

 if(flag){ 

response.sendRedirect("DOinfo.jsp");
//session.setAttribute("user", user); 
}else{   
response.sendRedirect("login.jsp");
}

response.sendRedirect("login.jsp");已经设置输出后不会将cookie放进去
xianer_wuxi
xianer_wuxi 回复lzj0327: 好了
3 年多之前 回复
xianer_wuxi
xianer_wuxi 回复lzj0327: 我试过了 还是不行。![图片说明](http://img.ask.csdn.net/upload/201606/03/1464916593_561204.png)
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!