走进浏览器对象之Cookie(一)

2014-11-24 02:47:46 · 作者: · 浏览: 6

快速热身:
Cookie可以用来通过浏览器在客户端存储相关用户信息。
Cookie是Web服务器发送到浏览器,并且存储在客户端计算机磁盘中的一些文本信息 。
在浏览器发送一个请求到Web服务器时,如果Cookie没有过期,服务器端的程序就会将其中的信息读取到。

有时Cookie被用于在用户不知情的情况下收集用户的信息,造成一些保密信息的泄露。

用户可能会在浏览器上关闭Cookie功能。

有效期:可以设置有效期的时间。

测试Cookie:

1.新建一个web工程。
2.在src目录下新建一个报名为com.neusoft.servlet_cookie的包。
3.在该包下建立两个名为cookieRead和cookieTest的servlet,cookieTest的内容为:
————————————————————————————————————
package com.neusoft.servlet_cookie;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class cookieTest extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=gb2312;");
Cookie cookie = new Cookie("userName", "wjl");//设置要向cookie中写入的信息
cookie.setMaxAge(5);//设置cookie的有效时间
response.addCookie(cookie);//将cookie写到客户端
response.sendRedirect("cookieRead");
}
}
————————————————————————————————————
cookieRead的内容为:
————————————————————————————————————
package com.neusoft.servlet_cookie;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class cookieRead extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
this.doPost(request, response);
}

public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=gb2312;");
PrintWriter out = response.getWriter();
Cookie[] cookie = request.getCookies();
for (int i = 0; i < cookie.length; i++) {
out.println("userName:" + cookie[i].getName() + "Value:"
+ cookie[i].getValue());
}
out.flush();
out.close();
}
}
————————————————————————————————————
4.servlet在web.xml中的配置信息如下:
————————————————————————————————————

cookieTest com.neusoft.servlet_cookie.cookieTest


cookieRead com.neusoft.servlet_cookie.cookieRead


cookieTest
/servlet/cookieTest


cookieRead
/servlet/cookieRead

————————————————————————————————————
5.重新发布工程,在浏览器中输入地址http://localhost:8080/Test/servlet/cookieTest,此时cookie已经写入到了客户端的计算机中,然后重定向到http://localhost:8080/Test/servlet/cookieRead页面时就把存储在客户端计算机中的有效时间是5秒的cookie对象中的内容读取到了,此时页面上显示的信息如下:

userName:userNameva lue:wjl

5秒中后cookie对象失效,此时刷新http://localhost:8080/Test/servlet/cookieRead页面,该页面将不能读取到cookie对象中的值,页面信息如下所示:

HTTP Status 500 -
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
java.lang.NullPoi