Cookie

  cookie是保存在客户端的一个“键值对”,用来存储用户的一些信息

cookie的应用:

-在电子商务会话中标识用户

-对网站进行定制,比如你经常浏览哪些内容,就展示哪些页面给你

-网站广告,比如百度联盟,你搜索了什么关键字,在各个网站就可以看到那个关键字的广告

  创建cookie

  1. package servletdemo;
  2.  
  3. import java.io.IOException;
  4. import javax.servlet.ServletException;
  5. import javax.servlet.annotation.WebServlet;
  6. import javax.servlet.http.Cookie;
  7. import javax.servlet.http.HttpServlet;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10.  
  11. /**
  12. * Servlet implementation class TestCookie
  13. */
  14. @WebServlet("/TestCookie")
  15. public class TestCookie extends HttpServlet {
  16. private static final long serialVersionUID = 1L;
  17.  
  18. /**
  19. * @see HttpServlet#HttpServlet()
  20. */
  21. public TestCookie() {
  22. super();
  23. // TODO Auto-generated constructor stub
  24. }
  25.  
  26. /**
  27. * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
  28. */
  29. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  30. // TODO Auto-generated method stub
  31. //构造函数第一个参数是key,第二个是value
  32. Cookie c=new Cookie("name", "henry");
  33. //设置时间,最低级是秒,此处就是60秒乘以60,也就是一个小时
  34. c.setMaxAge(60*60);
  35. //将创建的cookie添加到客户端
  36. response.addCookie(c);
  37. }
  38.  
  39. /**
  40. * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
  41. */
  42. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  43. // TODO Auto-generated method stub
  44. doGet(request, response);
  45. }
  46.  
  47. }

代码

获取cookie

  1. package servletdemo;
  2.  
  3. import java.io.IOException;
  4. import java.util.Iterator;
  5.  
  6. import javax.servlet.ServletException;
  7. import javax.servlet.annotation.WebServlet;
  8. import javax.servlet.http.Cookie;
  9. import javax.servlet.http.HttpServlet;
  10. import javax.servlet.http.HttpServletRequest;
  11. import javax.servlet.http.HttpServletResponse;
  12.  
  13. /**
  14. * Servlet implementation class TestGetCookie
  15. */
  16. @WebServlet("/TestGetCookie")
  17. public class TestGetCookie extends HttpServlet {
  18. private static final long serialVersionUID = 1L;
  19.  
  20. /**
  21. * @see HttpServlet#HttpServlet()
  22. */
  23. public TestGetCookie() {
  24. super();
  25. // TODO Auto-generated constructor stub
  26. }
  27.  
  28. /**
  29. * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
  30. */
  31. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  32. // TODO Auto-generated method stub
  33. Cookie [] cookies=request.getCookies();
  34. if(cookies!=null)
  35. {
  36. for(Cookie c:cookies)
  37. {
  38. String name=c.getName();
  39. String value=c.getValue();
  40. System.out.println(name+":"+value);
  41. }
  42. }
  43. }
  44.  
  45. /**
  46. * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
  47. */
  48. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  49. // TODO Auto-generated method stub
  50. doGet(request, response);
  51. }
  52.  
  53. }

代码

运行结果

Session

HTTP协议是无状态的,那么我们如何将对象数据持久化的保存呢,java有两个解决办法,一个是cookie,一个就是session,它是用来跟踪用户状态的一种机制,是针对浏览器和服务器的一对一关系

Session接口HttpSession,通常我们会使用它,接口的实现由WEB容器来完成

-可以从HttpServletRequest中获取HttpSession,request.getSession();返回一个HttpSession接口

-将信息保存在HttpSession中,session.setAttribute("usersession",obj);

  -从HttpSession中获得信息,session.getAttribute("usersession");

  -使session失效,session.invalidate();

  创建session

  1. package servletdemo;
  2.  
  3. import java.io.IOException;
  4. import javax.servlet.ServletException;
  5. import javax.servlet.annotation.WebServlet;
  6. import javax.servlet.http.HttpServlet;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9. import javax.servlet.http.HttpSession;
  10.  
  11. /**
  12. * Servlet implementation class SetSession
  13. */
  14. @WebServlet("/SetSession")
  15. public class SetSession extends HttpServlet {
  16. private static final long serialVersionUID = 1L;
  17.  
  18. /**
  19. * @see HttpServlet#HttpServlet()
  20. */
  21. public SetSession() {
  22. super();
  23. // TODO Auto-generated constructor stub
  24. }
  25.  
  26. /**
  27. * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
  28. */
  29. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  30. // TODO Auto-generated method stub
  31. HttpSession session=request.getSession();
  32. session.setAttribute("session_name", "session_value");
  33. }
  34.  
  35. /**
  36. * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
  37. */
  38. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  39. // TODO Auto-generated method stub
  40. doGet(request, response);
  41. }
  42.  
  43. }

代码

获得session

  1. package servletdemo;
  2.  
  3. import java.io.IOException;
  4. import javax.servlet.ServletException;
  5. import javax.servlet.annotation.WebServlet;
  6. import javax.servlet.http.HttpServlet;
  7. import javax.servlet.http.HttpServletRequest;
  8. import javax.servlet.http.HttpServletResponse;
  9. import javax.servlet.http.HttpSession;
  10.  
  11. /**
  12. * Servlet implementation class GetSession
  13. */
  14. @WebServlet("/GetSession")
  15. public class GetSession extends HttpServlet {
  16. private static final long serialVersionUID = 1L;
  17.  
  18. /**
  19. * @see HttpServlet#HttpServlet()
  20. */
  21. public GetSession() {
  22. super();
  23. // TODO Auto-generated constructor stub
  24. }
  25.  
  26. /**
  27. * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
  28. */
  29. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  30. // TODO Auto-generated method stub
  31. HttpSession session=request.getSession();
  32. String value=(String)session.getAttribute("session_name");
  33. System.out.println("value:"+value);
  34. }
  35.  
  36. /**
  37. * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
  38. */
  39. protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
  40. // TODO Auto-generated method stub
  41. doGet(request, response);
  42. }
  43.  
  44. }

代码

动手学servlet(四) cookie和session的更多相关文章

  1. 【学习】013 Servlet、Cookie、Session的简述

    Servlet核心内容 Sevlet的生命周期(重点) Servlet重要的四个生命周期方法 构造方法: 创建servlet对象的时候调用.默认情况下,第一次访问servlet的时候创建servlet ...

  2. JavaWeb之Servlet:Cookie 和 Session

    会话 现实生活中我们会用手机跟对方对话,拿起手机,拨号,然后对面接听,跟着互相通话,最后会话结束. 这个过程也可以用我们的B/S模式来描述: 打开浏览器—>输入地址->发出请求->服 ...

  3. servlet(5) - Cookie和session - 小易Java笔记

    1.会话概述 (1)会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. (2)会话过程中的数据不宜保存在request和servle ...

  4. servlet中cookie和session操作

    1.1 软件中的会话 一次会话: 打开浏览器 -> 访问一些服务器内容 -> 关闭浏览器 登录场景: 打开浏览器 -> 浏览到登陆页面 -> 输入用户名和密码 -> 访问 ...

  5. 动手学servlet(六) 过滤器和监听器

     过滤器(Filter) 过滤器是在客户端和请求资源之间,起一个过滤的作用,举个例子,比如我们要请求admin文件夹下的index.jsp这个页面,那么我们可以用一个过滤器,判断登录用户是不是管理员 ...

  6. 动手学servlet(五) 共享变量

    1. 无论对象的作用域如何,设置和读取共享变量的方法是一致的 -setAttribute("varName",obj); -getAttribute("varName&q ...

  7. Servlet技术 Cookie与Session

    会话过程:用户打开浏览器,点击链接访问资源,最后到关闭浏览器的整个过程称之为会话. 会话使用:与服务器进行会话的过程中产生数据,数据被保存下来,服务器根据数据对客户进行辨别,做出个性化的响应. 介绍两 ...

  8. 动手学servlet(三) 请求头和响应头信息

    获取请求头信息 package servletdemo; import java.io.IOException; import java.util.Enumeration; import javax. ...

  9. 动手学servlet(二) servlet基础

    1.我们来试着向一个servlet提交一个表单,现在webcontent下新建一个login.html页面,其中action对应servelt类名,代码如下: <!DOCTYPE HTML PU ...

随机推荐

  1. C语言qsort函数用法

    qsort函数简介 排序方法有很多种:选择排序,冒泡排序,归并排序,快速排序等. 看名字都知道快速排序是目前公认的一种比较好的排序算法.因为他速度很快,所以系统也在库里实现这个算法,便于我们的使用. ...

  2. eclipse中tomcat加gc日志输出

    -XX:ParallelGCThreads=4 -XX:+PrintGCDetails

  3. Android ActionBarSherlock使用教程

    Android ActionBarSherlock使用教程 本文转自 http://www.chenwg.com/android/actionbarsherlock%E4%BD%BF%E7%94%A8 ...

  4. The word is not correctly spelled问题解决

    今天在做Ant/Xdoclet辅助生成hibernate实体映射文件时,eclipse出现了极其让我郁闷的错误,"The word is not correctly spelled" ...

  5. css之四大类选择器

    一.选择器: 关于组合选择器之间的区别: 后代选择器(A B)与子选择器(A>B)之间的区别: 后代选择器: 子选择器: 总结:后代选择器的作用范围是一个元素里面包含的所有元素,即包括的是所有的 ...

  6. 剑指offer系列38----滑动窗口的最大值(不懂????????????????????????????????????????????????)

    [题目] 给定一个数组和滑动窗口的大小,找出所有滑动窗口里数值的最大值.例如,如果输入数组{2,3,4,2,6,2,5,1}及滑动窗口的大小3,那么一共存在6个滑动窗口,他们的最大值分别为{4,4,6 ...

  7. DHCP协议讲解

    一.DHCP服务介绍: DHCP为动态主机配置协议,该协议能自动配置主机的IP地址.子网掩码.网关及DNS服务器等TCP/IP信息.DHCP可以降低客户机IP地址配置的复杂度和网络管理成本. DHCP ...

  8. android学习笔记35——AnimationDrawable资源

    AnimationDrawable资源 AnimationDrawable,代表一个动画. android既支持传统的逐帧动画(类似于电影方式,一张图片一张图片的切换),也支持通过平移.变换计算出来的 ...

  9. string和stringBuilder区别

    C# String 对象是不可改变的.每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间.在需要对字符串执行重复修改的情况下,与 ...

  10. 黄聪:wordpress后台加载ajax.googleapis.com导致打开速度很慢的解决方案

    打开wordpress后台,发现很卡,通过开发者工具看到是因为加载http://ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/themes/smoothn ...