在Servlet程序中使用Cookie

来源:互联网 发布:扇贝单词mac版 编辑:程序博客网 时间:2024/04/26 16:48

在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 TestCookie extends HttpServlet {

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html;charset=utf-8");

PrintWriter out = response.getWriter();

/*首先从请求的消息中将用户账号、昵称获取到*/

String name=request.getParameter("name,");

String nickName=request.getParameter("nickName");

/*在这两个不为空的时候进行登录*/

if(name==null||nickName==null){

out.println("请输入姓名和昵称");

return;

}

/*创建Cookie对象,用来保存会话状态信息的*/

Cookie cookie1=new Cookie("name",name);

/*Cookie的有效期*/

cookie1.setMaxAge(24*60*60);

Cookie cookie2=new Cookie("nickName",nickName);

/*将生成的cookie对象添加到响应消息头字段中*/

response.addCookie(cookie1);

response.addCookie(cookie2);

out.println("欢迎访问本servlet");

out.flush();

out.close();

}

5、帮助文档:Cookie类的使用

在Http子包下:

6、设置Cookie

Internet选项    隐私    高级

7、 在Servlet程序中使用Cookie:

Servlet API中提供了一个javax.servlet.http.Cookie类来封装Cookie信息,它包含有生成Cookie信息和提取Cookie信息的各个属性的方法。

Cookie类的方法:

1 构造方法: public Cookie(java.lang.String name,java.lang.String value)

2 getName方法

3 setValue与getValue方法

4 setMaxAge与getMaxAge方法

5 setPath与getPath方法

6 setDomain与getDomain方法

7 setVersion与getVersion方法

8 setComment与getComment方法

9 setSecure与getSecure方法

HttpServletResponse接口中定义了一个addCookie方法,它用于在发送给浏览器的HTTP响应消息中增加一个Set-Cookie响应头字段。

HttpServletRequest接口中定义了一个getCookies方法,它用于从HTTP请求消息的Cookie请求头字段中读取所有的Cookie项。

WEB应用中的会话与会话状态

HTTP协议是一种无状态的协议,WEB服务器本身不能识别出哪些请求是同一个浏览器发出的 ,浏览器的每一次请求都是完全孤立的

WEB服务器端程序要能从大量的请求消息中区分出哪些请求消息属于同一个会话,即能识别出来自同一个浏览器的访问请求,这需要浏览器对其发出的每个请求消息都进行标识,属于同一个会话中的请求消息都附带同样的标识号,而属于不同会话的请求消息总是附带不同的标识号,这个标识号就称之为会话ID

Cookie

Cookie是一种在客户端保持HTTP状态信息的技术

Cookie是再浏览器访问WEB服务器的某个资源是,由服务器在HTTP响应消息头中附带传送给浏览器的一片数据,WEB浏览器传送给各个客户端浏览器的数据是可以各不相同的

一旦WEB浏览器保存了某个Cookie,那么他以后每次访问该WEB服务器时,都应在HTTP请求头中讲这个Cookie回传给WEB服务器

一个Cookie只能表示一种信息,他至少含一个标示该信息的名称和设置值

一个WEB站点可以给一个WEB浏览器发送多个Cookie,一个WEB浏览器也可以存储多个WEB站点提供的Cookie

浏览器一般值允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小被限制为4KB

Set-Cookie响应头字段

Set-Cookie头字段中设置的Cookie内容是具有一定格式的字符串,必须有Cookie的名称和设置值开头,格式为“名称=值”,后面可以家上0个或多个亿分毫(;)和空格分隔的其他可选属性,属性格式一般为“属性名=值”

除了“名称=值”对必须位于最前面