- 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());
这样就可以了~~