通过cookie的getCookies()方法可获取所有cookie对象的集合;通过getName()方法可以获取指定的名称的cookie;通过getValue()方法获取到cookie对象的值。另外,将一个cookie对象发送到客户端,使用response对象的addCookie()方法。
下面通过cookie保存并读取用户登录信息的例子加深一下理解。
(1)创建index.jsp文件。在改文件中,首先获取cookie对象的集合,如果集合不为空,就通过for循环遍历cookie集合,从中找出设置的cookie(这里设置为lee),并从该cookie中提取出用户名和注册时间,再根据获取的结果显示不同的提示信息。
index.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | <%@ page language= "java" contentType= "text/html; charset=utf-8" pageEncoding= "utf-8" %> <% @page import = "java.net.URLDecoder" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" > <html> <head> <meta http-equiv= "Content-Type" content= "text/html; charset=utf-8" > <title>通过cookie保存并读取用户登陆信息</title> </head> <body> <% Cookie[] cookies=request.getCookies(); //从request中获得cookie对象的集合 String user= "" ; //登录用户 String date= "" ; //注册时间 if (cookies!= null ){ for ( int i= 0 ;i<cookies.length;i++){ if (cookies[i].getName().equals( "lee" )){ user=URLDecoder.decode(cookies[i].getValue().split( "#" )[ 0 ]); //获取用户名 date=cookies[i].getValue().split( "#" )[ 1 ]; //获取注册时间 } } } if ( "" .equals(user)&& "" .equals(date)){ //如果没有注册 %> 游客你好,欢迎你初次光临! <form action= "deal.jsp" method= "post" > 请输入姓名:<input name= "user" type= "text" value= "" > <input type= "submit" value= "确定" > </form> <% } else { //已经注册 %> 欢迎[<b><%=user %><b>]再次光临<br> 你注册的时间是:<%=date %> <% } %> </body> </html> |
(2)编写deal.jsp文件,用来向cookie中写入注册信息。
deal.jsp
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <%@ page language= "java" contentType= "text/html; charset=utf-8" pageEncoding= "utf-8" %> <% @page import = "java.net.URLEncoder" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" > <html> <head> <meta http-equiv= "Content-Type" content= "text/html; charset=utf-8" > <title>写入cookie</title> </head> <body> <% request.setCharacterEncoding( "utf-8" ); //设置请求的编译为utf-8 String user=URLEncoder.encode(request.getParameter( "user" ), "utf-8" ); //获取用户名 Cookie cookie= new Cookie( "lee" ,user+ "#" + new java.util.Date().toLocaleString()); //创建并实例化cookie对象 cookie.setMaxAge( 60 * 60 * 24 * 30 ); //设置cookie有效期为30天 response.addCookie(cookie); %> <script type= "text/javascript" >window.location.href= "index.jsp" </script> </body> </html> |
技巧:在向cookie中保存的信息中如果包括中文,需要调用java.net.URLEncoder类的encode()方法保存到cookie中的信息进行编码;在读取内容时,需要应用到java.net.URLDecoder类的decode()方法进行解码。这样就可以成功地向cookie中写入中文。
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态