xianer_wuxi 2016-06-02 15:46 采纳率: 100%
浏览 2908
已采纳

关于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条回答 默认 最新

  • lzj0327 2016-06-03 00:57
    关注

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

     if(flag){ 
    
    response.sendRedirect("DOinfo.jsp");
    //session.setAttribute("user", user); 
    }else{   
    response.sendRedirect("login.jsp");
    }
    
    response.sendRedirect("login.jsp");已经设置输出后不会将cookie放进去
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services
  • ¥15 关于#c语言#的问题:我现在在做一个墨水屏设计,2.9英寸的小屏怎么换4.2英寸大屏
  • ¥15 模糊pid与pid仿真结果几乎一样