java cookie使用方法_Cookie的使用方法

一、cookie的作用

在我们平常写的B/S程序中,会经常用到cookie,主要有以下一些作用:

1、记录用户名和密码

以及该用户需要保存的一些信息,如购物购站,使用cookie,可以让用户自动登录到站点等。

2、定制站点

可以使用cookie来记录用户的偏好。

3、定向广告

可以使用cookie来记录用记经常访问的主题,并向他们显示与这些主题相关的广告。

二、向客户程序发送cookie

1、创建cookie对象

Cookie c = new Cookie(“userId”,”landril”);

2、设置最大时效,默认该cookie是存储在浏览器的内在中,用户关闭浏览器则被删除,下面的方法是将cookie存储在硬盘上。

c.setMaxAge(60*60*24);//一天,如果设置为0则是删除该cookie

3、将cookie放入到HTTP响应报头,可以使用HttpServletResponse的addCookie方法,此方法不修改之前指定的Set-Cookie报头,而是创建新的报头。

response.addCookie(c);

注意:设置cookie的步骤为创建cookie对象,设置最大时效,将cookie放入响应报头,即发送到客户程序,记住一定要将cookie发送到客户程序

三、从客户端读取cookie

1、调用HttpServletRequest的getCookies得到一个Cookie对象的数组

2、对数组进行循环,调用cookie的getName方法,获取具体的cookie的值

Cookie[] cookies = request.getCookies();

if(cookies != null){

for(int i=0;i

Cookie c = cookies[i];

if(“userId”.equals(c.getName())){

System.out.println(c.getValue());

}

}

}

四、cookie的常用方法

1、setComment()/getComment():指定或查找与该cookie相关的注释

2、setDomain()/getDomain():设置或读取该cookie适用的域

3、setMaxAge()/getMaxAge():操作cookie保留的时间,多长时间后过期

4、getName():读取cookie的名称

5、setPath()/getPath():设置或取得cookie适用的路径

cookie.setPath(“/”);指定服务器的所有页面都应该收到该cookie

6、setSource()/getSource():指定cookie是否只能通过加密连接(SSL)

默认false,表示cookie适用所有连接

7、setValue()/getValue():指定或获取cookie的值

五、使用cookie

1、RepeatServlet.java

publicclassRepeatServletextendsHttpServlet {

publicvoiddoGet(HttpServletRequest request, HttpServletResponse response)

throwsServletException, IOException {

booleannewa=true;

Cookie[] cookies = request.getCookies();

if(cookies !=null){

for(inti = 0; i < cookies.length; i++) {

Cookie c = cookies[i];

if((c.getName().equals("repeat")) && (c.getValue().equals("true"))) {

newa=false;

break;

}

}

}

String title;

if(newa) {

Cookie rtn =newCookie("repeat"," true");

rtn.setMaxAge(60*60*24*365);

response.addCookie(rtn);

title ="First Welcome";

}else{

title ="Welcom Back";

}

response.setContentType("text/html");

PrintWriter out = response.getWriter();

out.println("

");

out.println(title);

out.println("");

}

publicvoiddoPose(HttpServletRequest request, HttpServletResponse response)

throwsServletException, IOException {

doGet(request,response);

}

}

2、CookieUtil.java

publicclassCookieUtil{

publicstaticString getValue(HttpServletRequest request,String cName,String value){

Cookie[] cookies = request.getCookies();

if(cookies !=null){

for(inti = 0; i < cookies.length; i++) {

Cookie cookie = cookies[i];

if(cName.equals(cookie.getName())) {

returncookie.getValue();

}

}

}

returnvalue;

}

publicstaticCookiegetCookie(HttpServletRequest request,String cName){

Cookie[] cookies = request.getCookies();

if(cookies !=null){

for(inti = 0; i < cookies.length; i++) {

Cookie cookie = cookies[i];

if(cName.equals(cookie.getName())) {

returncookie;

}

}

}

returnnull;

}

}

3、AccessCountServle.java记录访问数

publicclassAccessCountServletextendsHttpServlet {

publicvoiddoGet(HttpServletRequest request,HttpServletResponseresponse)

throwsServletException, IOException {

String acount = CookieUtil.getValue(request,"acc","1");

intcount = Integer.parseInt(acount);

Cookie cookie =newCookie("acc",String.valueOf(count+1));

cookie.setMaxAge(60*60*24*365);

response.addCookie(cookie);

response.setContentType("text/html");

PrintWriter out = response.getWriter();

out.println("Hello,the number is

");

out.println(count);

out.println("");

}

publicvoiddoPost(HttpServletRequest request,HttpServletResponseresponse)

throwsServletException, IOException {

doGet(request,response);

}

}

cookie的具体应用

if(checked){//当数据请求成功的时候如果checked的值为true则设置本机的cookie

var date =new Date();//获取当前时间

date.setDate(date.getDate()+30);//设置当前的日期为30天以后的日期

document.cookie ='user='+nameVal+";expires="+date.toGMTString();

document.cookie ='pwd='+encodeURI(pwdVal)+";expires="+date.toGMTString();

}

//读取cookie的函数

function getCookie(name){

var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");

if(arr=document.cookie.match(reg))

return unescape(arr[2]);

else

return null;

}

var cookie =document.cookie;

if(cookie){

$('.username').val(getCookie('user'));

$('.pwd').val(getCookie('pwd'));

}

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值