当前位置: 代码迷 >> Java Web开发 >> jsp的cookie怎么使用,
  详细解决方案

jsp的cookie怎么使用,

热度:279   发布时间:2016-04-17 17:18:44.0
jsp的cookie如何使用,在线等````````
Java code
<%!           public static Cookie getCookie(HttpServletRequest request,String name)           {               Cookie [] cookies =request.getCookies();               if(cookies!=null)               {                   for(int i=0;i<cookies.length;i++)                   {                       if(cookies[i].getName().equals(name))                       {                        return cookies[i];                                                  }                   }               }               return null;           }    %>    <%        //设置cookie           //我想把username="heavilyarmed" 和userpwd="123"放到cookie内        //没思路        Cookie nameCookie2=new Cookie("mingzi","nicholas");        nameCookie2.setDomain("http://localhost:1009/twoWeeks");        nameCookie2.setPath("/userinfo");        nameCookie2.setMaxAge(60);        response.addCookie(nameCookie2);     %>    <%        //读取        String name="mingzi";        Cookie nameCookie=getCookie(request,name);        System.out.println("name is :"+nameCookie.getValue());        System.out.println("thanks");     %>



我这么写上去,会报空异常,从未接触过,还请各位帮忙写详细点儿

------解决方案--------------------
你的设置Cookie和取出Cookie是在一个页面上吧,

设置的时候Cookie只是存在response中,没与浏览器交互,还没被发到客户端,所以request里还没有,

还有一个编程的习惯,取出一个对象时尽量判断一下是否为null后再进行操作,否则很可能出空异常

也就是这一句 System.out.println("name is :"+nameCookie.getValue());
加个if判断,如果为null输出提示信息,或进行其它操作
------解决方案--------------------
哥们,帖子都成推荐了的啊。。。。。。
------解决方案--------------------
刚写的最简单的:
Java code
<%@page pageEncoding="utf-8" %><%@page import="javax.servlet.http.Cookie" %><%        Cookie nameCookie = new Cookie("username","heavilyarmed");        nameCookie.setMaxAge(60*60);//1小时        response.addCookie(nameCookie);                Cookie pwdCookie = new Cookie("userpwd","123");        nameCookie.setMaxAge(60*60);//1小时        response.addCookie(pwdCookie);                Cookie[] cookies = request.getCookies();        if( cookies !=null){                            for(int i=0;i<cookies.length;i++){                    Cookie cookie =cookies[i];                    out.println(cookie.getName()+"="+cookie.getValue());                }        } %>
------解决方案--------------------
呵呵~~终于搞明白了.
楼主可以这样做:
将cookie作为一个属性放到request中:
request.setAttribute("cookie",nameCookie2);然后再这样取出即可:
 Cookie c = (Cookie)request.getAttribute("cookie");
 System.out.println(c.getName());
 System.out.println(c.getMaxAge());
 System.out.println(c.getPath());
这样就可以了~~
  相关解决方案