JSP中cookie的使用方法(用户登入-客户端读取及发送)_第1页
JSP中cookie的使用方法(用户登入-客户端读取及发送)_第2页
JSP中cookie的使用方法(用户登入-客户端读取及发送)_第3页
JSP中cookie的使用方法(用户登入-客户端读取及发送)_第4页
JSP中cookie的使用方法(用户登入-客户端读取及发送)_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一、向客户程序发送cookie1、 创建cookie对象 Cookie c = new Cookie(“userId”,”landril”);2、 设置最大时效 默认该cookie是存储在浏览器的内在中,用户关闭浏览器则被删除,下面的方法是将cookie存储在硬盘上。 c.setMaxAge(60*60*24); /一天,如果设置为0则是删除该cookie3、向客户端添加Cookie 将cookie放入到HTTP响应报头,可以使用HttpServletResponse的addCookie方法,此方法不修改之前指定 的Set-Cookie头信息,而是创建新的头信息。 response.addCo

2、okie(c); 注意:设置cookie的步骤为创建cookie对象,设置最大时效,将cookie放入响应头信息,即发送到客户程序。 二、从客户端读取cookie1、 获取Cookie数组 调用HttpServletRequest的getCookies得到一个Cookie对象的数组2、 对数组进行循环,调用cookie的getName方法,获取具体的cookie的值 Cookie cookies = request.getCookies(); if(cookies != null) for(int i=0;i cookies.length;i+) Cookie c = cookiesi; if

3、(“userId”.equals(c.getName() System.out.println(c.getValue(); 三、使用Cookie记录访问数1.用户第一次访问网页时的操作 . out.println(你是第 1 次登录该网页。在此之前没有相关Cookie信息。); /打印登录信息 cookie=new Cookie(accpCount, 1); /Cookie对象,并设置名称与值 cookie.setMaxAge(60*60*24); /设置最长保留时间为1天 response.addCookie(cookie); /添加到响应头信息,返回到客户端 .2.用户非第一次访问网页时的

4、操作 . Cookie cookies = request.getCookies(); /从request对象中获取客户端Cookie信息 int count = 0; /初始访问次数为0 Cookie cookie=null; /定义Cookie对象 if (cookies != null) /判断request对象中是否存在Cookie信息 for (int i = 0; i cookies.length; i+) /使用for循环遍历Cookie数组 cookie = cookiesi; /获取数组元素 if (accpCount.equals(cookie.getName() /判断C

5、ookie的名称是否为accpCount count = Integer.parseInt(cookie.getValue()+1; /如果相等,加1 cookie.setValue(count+); /重新设置Cookie对象的value值 cookie.setMaxAge(60*60*24); /设置保留最长时间 response.addCookie(cookie); /返回到客户端 out.println(你是第 + count + 次登录该网页。); break; .3.完整的使用Cookie对象获取客户Cookie数据,并通过Cookie名称取出相应的值,在页面上显示登录次数 . p

6、ublic void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException response.setContentType(text/html;charset=gb2312); PrintWriter out = response.getWriter(); out .println(); out.println(); out.println( ); out.println( ); Cookie cookies = request.getCooki

7、es(); int count = 0; boolean bool=true; Cookie cookie=null; if (cookies != null) for (int i = 0; i cookies.length; i+) cookie = cookiesi; if (accpCount.equals(cookie.getName() count = Integer.parseInt(cookie.getValue()+1; cookie.setValue(count+); cookie.setMaxAge(60*60*24); response.addCookie(cookie

8、); out.println(你是第 + count + 次登录该网页。); bool=false; break; if(bool) out.println(你是第 1 次登录该网页。在此之前没有相关Cookie信息。); cookie=new Cookie(accpCount, 1); cookie.setMaxAge(60*60*24); response.addCookie(cookie); out.println( ); out.println(); out.flush(); out.close(); .4. 运行效果图 四、使用Cookie记录用户名和密码一、用户登录操作 在用户填写

9、登录数据后,提交表单进行登录验证,如果用户名和密码正确,则把用户名和密码保存在客户端。页面如图1所示。 图1 保存Cookie信息的登录页面 实现代码如下所示。 . response.setContentType(text/html;charset=gbk); /获取用户名 String userName = request.getParameter(username); /获取用户密码 String password = request.getParameter(password); /验证用户是否合法 if (accp.equals(userName) & accp.equals(pass

10、word) /如果合法,把用户名和密码保存在客户端Cookie中 /获取客户选择的Cookie保存时间 String cookieDate = request.getParameter(cookieDate); int date = 0; if (cookieDate != null & cookieDate != ) date = Integer.parseInt(cookieDate); /创建用户名Cookie对象 Cookie cookieName = new Cookie(accpLoginName, userName); /设置Cookie保存时间 cookieName.setMa

11、xAge(date); /添加到客户端 response.addCookie(cookieName); /创建用户密码Cookie对象 Cookie cookiePass = new Cookie(accpLoginPass, password); /设置保存Cookie时间 cookiePass.setMaxAge(date); /添加到客户端 response.addCookie(cookiePass); response.sendRedirect(success.jsp); else response.sendRedirect(fail.jsp); .二、用户再次登录时操作 服务器首先读

12、取客户端Cookie信息,如果存在用户名和密码数据,则直接登录,否则显示登录页面。 实现代码如下所示。 response.setContentType(text/html;charset=gbk); /用户名和密码是否存在以及合法的判断参数 boolean bool=false; /获取客户端Cookie数组 Cookie cookies = request.getCookies(); /判断客户端是否存在Cookie对象 if (cookies != null) /预定义保存用户名和密码的变量 String userName = ; String password = ; /遍历Cookie数组 for (int i = 0; i cookies.length; i+) /取得每一个Cookie对象 Cookie cookie = cookiesi; /判断Cookie的名称是否等于accpLoginName if (accpLoginName.equals(cookie.getName() userName = cookie.getValue(); /判断Cookie的名称是否等于accpLoginPass if (accpLoginPass.equals(cookie.getName() password = cookie.getValue(); /判断用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论