Java中Cookie和Session的实现机理和使用策略

0 下载量 168 浏览量 更新于2024-09-02 收藏 316KB PDF 举报
"Java中Cookie和Session的那些事儿" Cookie和Session是Web开发中最常用的两种技术,它们都是为了保持用户的访问状态,一方面为了方便业务实现,另一方面为了简化服务端的程序设计。下面是关于Java中Cookie和Session的详细知识点: 一、Cookie Cookie是客户端(浏览器端)的技术,设置了Cookie之后,每次访问服务端,请求中都会带上Cookie。Cookie主要用于存储用户的访问信息,以便服务器端可以识别和记忆用户的访问状态。 Cookie的工作机制: 1. 当用户使用HTTP访问服务器时,服务器会将一些键值对信息返回给客户端浏览器,并且给这些数据加一些限制条件。 2. 在符合限制条件情况下,用户下次访问服务器时,会带上之前设置的Cookie键值对信息。 3. 当该用户输入URL时,浏览器便会在本地硬盘上查找与该URL关联的Cookie。 4. 如果该Cookie存在,浏览器便将该Cookie与页请求一起发送到您的站点。 Cookie的优点: 1. 可以存储用户的访问信息,以便服务器端可以识别和记忆用户的访问状态。 2. 可以简化服务端的程序设计。 Cookie的缺点: 1. 使用Cookie传递信息,随着Cookie个数增多和访问量增大,它占用的带宽会越来越大。 2. Cookie可能会被用户删除或禁用。 Cookie的属性项: 1. Version0和Version1:当前Cookie有2个版本,Version0和Version1,它们有2种设置响应头标识,分别是"Set-Cookie"和"Set-Cookie2"。 2. Cookie0属性值和Cookie1属性值:不同版本的Cookie有不同的属性值。 Java中使用Cookie示例: ```java @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { response.setContentType("text/html;charset=utf-8"); PrintWriter out = response.getWriter(); Cookie[] cookies = request.getCookies(); // ... } ``` 二、Session Session是服务端技术,在服务端存储用户的访问信息。Session主要用于存储用户的访问信息,以便服务器端可以识别和记忆用户的访问状态。 Session的工作机制: 1. 当用户访问服务器时,服务器会创建一个Session对象。 2. 服务器将用户的访问信息存储在Session对象中。 3. 在用户下次访问服务器时,服务器可以通过Session对象来识别和记忆用户的访问状态。 Session的优点: 1. 可以存储用户的访问信息,以便服务器端可以识别和记忆用户的访问状态。 2. 可以简化服务端的程序设计。 Session的缺点: 1. 使用Session保存信息,最大的弱点就是不容易在多台服务器之间共享。 Java中使用Session示例: ```java @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { HttpSession session = request.getSession(); // ... } ``` Cookie和Session都是为了保持用户的访问状态, Cookie是客户端技术,Session是服务端技术。它们都是Web开发中最常用的两种技术,都是为了方便业务实现,简化服务端的程序设计。