Unit06: 状态管理-cookie    

web

  1. package web;
  2.  
  3. import java.io.IOException;
  4. import java.io.PrintWriter;
  5.  
  6. import javax.servlet.ServletException;
  7. import javax.servlet.http.Cookie;
  8. import javax.servlet.http.HttpServlet;
  9. import javax.servlet.http.HttpServletRequest;
  10. import javax.servlet.http.HttpServletResponse;
  11.  
  12. public class FindCostServlet extends HttpServlet {
  13.  
  14. //相当于MainServlet.findCost()
  15. @Override
  16. protected void service(
  17. HttpServletRequest req,
  18. HttpServletResponse res) throws ServletException, IOException {
  19. Cookie[] cs = req.getCookies();
  20. if(cs != null) {
  21. res.setContentType(
  22. "text/html;charset=utf-8");
  23. PrintWriter out = res.getWriter();
  24. for(Cookie c : cs) {
  25. out.println(
  26. c.getName()+":"+c.getValue());
  27. }
  28. out.close();
  29. }
  30. }
  31.  
  32. }

FindCostServlet.java

  1. package web;
  2.  
  3. import java.io.IOException;
  4. import java.io.PrintWriter;
  5. import java.net.URLDecoder;
  6.  
  7. import javax.servlet.ServletException;
  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. public class IndexServlet extends HttpServlet {
  14.  
  15. //相当于MainServlet.toIndex()
  16. @Override
  17. protected void service(
  18. HttpServletRequest req,
  19. HttpServletResponse res) throws ServletException, IOException {
  20. //浏览器再次访问此服务器时,会自动传入
  21. //之前保存的cookie,现在获取此cookie.
  22. Cookie[] cs = req.getCookies();
  23. //将cookie中的数据显示到页面上
  24. if(cs != null) {
  25. res.setContentType(
  26. "text/html;charset=utf-8");
  27. PrintWriter out = res.getWriter();
  28. for(Cookie c : cs) {
  29. String value =
  30. URLDecoder.decode(
  31. c.getValue(),"utf-8");
  32. out.println(
  33. c.getName()+":"+value);
  34. }
  35. out.close();
  36. }
  37. }
  38.  
  39. }

IndexServlet.java

  1. package web;
  2.  
  3. import java.io.IOException;
  4. import java.net.URLEncoder;
  5.  
  6. import javax.servlet.ServletException;
  7. import javax.servlet.http.Cookie;
  8. import javax.servlet.http.HttpServlet;
  9. import javax.servlet.http.HttpServletRequest;
  10. import javax.servlet.http.HttpServletResponse;
  11.  
  12. public class LoginServlet extends HttpServlet {
  13.  
  14. //相当于MainServlet.login()
  15. @Override
  16. protected void service(
  17. HttpServletRequest req,
  18. HttpServletResponse res) throws ServletException, IOException {
  19. //接收传入的参数
  20. String code = req.getParameter("code");
  21. //存入cookie,给其他功能使用
  22. //1.一个cookie对象中只能存一个数据
  23. //2.所存的数据必须是字符串
  24. //3.可以创建更多个cookie以保存更多的数据
  25. Cookie c1 = new Cookie("code",code);
  26. //设置cookie的生存时间
  27. c1.setMaxAge(600000);
  28. //将cookie存入response,在服务器响应时,
  29. //会自动把cookie发送给浏览器.
  30. res.addCookie(c1);
  31. //向cookie中存中文
  32. Cookie c2 = new Cookie("city",
  33. URLEncoder.encode("北京", "utf-8"));
  34. res.addCookie(c2);
  35. //设置cookie的有效路径
  36. Cookie c3 = new Cookie("name","Tarena");
  37. c3.setPath("/jsp3");
  38. res.addCookie(c3);
  39. }
  40.  
  41. }

LoginServlet.java

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5">
  3. <display-name>jsp3</display-name>
  4. <welcome-file-list>
  5. <welcome-file>index.html</welcome-file>
  6. <welcome-file>index.htm</welcome-file>
  7. <welcome-file>index.jsp</welcome-file>
  8. <welcome-file>default.html</welcome-file>
  9. <welcome-file>default.htm</welcome-file>
  10. <welcome-file>default.jsp</welcome-file>
  11. </welcome-file-list>
  12.  
  13. <servlet>
  14. <servlet-name>login</servlet-name>
  15. <servlet-class>web.LoginServlet</servlet-class>
  16. </servlet>
  17. <servlet-mapping>
  18. <servlet-name>login</servlet-name>
  19. <url-pattern>/main/login</url-pattern>
  20. </servlet-mapping>
  21.  
  22. <servlet>
  23. <servlet-name>index</servlet-name>
  24. <servlet-class>web.IndexServlet</servlet-class>
  25. </servlet>
  26. <servlet-mapping>
  27. <servlet-name>index</servlet-name>
  28. <url-pattern>/main/index</url-pattern>
  29. </servlet-mapping>
  30.  
  31. <servlet>
  32. <servlet-name>findCost</servlet-name>
  33. <servlet-class>web.FindCostServlet</servlet-class>
  34. </servlet>
  35. <servlet-mapping>
  36. <servlet-name>findCost</servlet-name>
  37. <url-pattern>/cost/find</url-pattern>
  38. </servlet-mapping>
  39.  
  40. </web-app>

web.xml

Unit06: 状态管理-cookie的更多相关文章

  1. 状态管理cookie 案例

    1状态管理:服务器为了追踪同一个客户端发出的请求,将多次交互看成一个整体看待 2:cookie的生存时间,默认情况下,cookie保存在浏览器内存中,只要不关闭浏览器,cookie就一直存在 如果希望 ...

  2. [原创]java WEB学习笔记28: 会话与状态管理Cookie 机制

    本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...

  3. aspx页面状态管理Cookie和ViewState

    Cookie 设置cookie protected void Button2_Click(object sender, EventArgs e) { HttpCookie cookie = new H ...

  4. JSP | 基础 | JSP状态管理 | Cookie

    Cookie : 是web服务器保存在客户端的一系列文本信息. Cookie的作用: 1.对特定的对象的追踪 2. 3. JSP中创建Cookie以及使用 创建Cookie对象 写入Cookie对象 ...

  5. [Asp.Net]状态管理(ViewState、Cookie)

    简介 HTTP协议是无状态的.从客户端到服务器的连接可以在每个请求之后关闭.但是一般需要把一些客户端信息从一个页面传送给另一个页面. 无状态的根本原因是:浏览器和服务器使用Socket通信,服务器将请 ...

  6. 转载ASP.NET 状态管理Application,Session,Cookie和ViewState用法

    转载原地址 http://www.cnblogs.com/cuishao1985/archive/2009/09/24/1573403.html ASP.NET状态管理 APPlication,Ses ...

  7. 状态管理之cookie使用及其限制、session会话

    # 1.什么是状态管理? 将浏览器与web服务器之间多次交互当作一个整体来处理,并且将多次交互所涉及的数据(即状态)保存下来.(cookie浏览器所涉及到的访问数据保存下来)# 2.如何进行状态管理? ...

  8. 基于cookie的用户登录状态管理

    cookie是什么 先来花5分钟看完这篇文章:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Cookies 看完上文,相信大家对cookie已经有 ...

  9. 表格搞定 Asp.net Web 状态管理

    最近在网上搜罗了 ASP.NET WEB 状态管理方面的一些内容,终于把这些内容整合总结了一下. 1. 希望自己通过整理,能够掌握一些,为自己投资. 2. 以便自己忘记,又要浪费时间搜罗. 3. 希望 ...

随机推荐

  1. Sql server日期函数操作

    1.获取前一小时内的数据:DATEADD(HOUR,-1,GETDATE()),将"HOUR"替换成DAY,Month,YEAR就是前一天,前一月,前一年 2.获取日期部分,格式为 ...

  2. 利用 LINQ的skip和Take 方法对List实现分页效果

    var testList=new List<string>(); )).Take(pageSize); //skip是跳过的条数,pageSize*(pageIndex-),Take 是返 ...

  3. Oracle 常用系统包

    一.DBMS_OUTPUT(用于输入和输出信息) 二.DBMS_JOB(用于安排和管理作业队列) 三.dbms_pipe(类似UNIX系统的管道) 四.dbms_alert(用于生成并传递数据库预警信 ...

  4. LeetCode OJ:Implement strStr()(实现子字符串查找)

    Implement strStr(). Returns the index of the first occurrence of needle in haystack, or -1 if needle ...

  5. tooltip提示框组件

    Tooltip 提示框组件 可独立于其他组件通过$.fn.tooltip.defaults重写默认的defaults.当用户移动鼠标指针在某个元素上时,出现提示信息窗口来显示额外信息.提示内容可以包含 ...

  6. C++面向对象高级编程(一)基础篇

    技术在于交流.沟通,转载请注明出处并保持作品的完整性. 概要: 知识点1 构造函数与析构函数 知识点2 参数与返回值 知识点3 const 知识点4 函数重载(要与重写区分开) 知识点5 友元 先以C ...

  7. 剑指offer--44.两个链表的第一个公共结点

    @selfboot 牛逼的代码,长度相同,一遍出结果, 长度不同,短的点跑完,变成长的,当长的跑完变成短的链表的时候,较长的链表已经走过了多的结点. ------------------------- ...

  8. ubuntu16 jdk7 install&config

    1,下载jdk文件 http://www.oracle.com/technetwork/java/javase/downloads/java-archive-downloads-javase7-521 ...

  9. Kotlin Reference (七) Returns and Jumps

    most from reference kotlin有三个结构跳跃表达式 return 默认情况下,从最近的封闭函数或匿名函数返回. break 跳出整个循环 continue 跳出本次循环,进行下一 ...

  10. 使用DaoCloud持续构建docker镜像,自动化部署

    我们学会了在主机上安装部署docker,也学会了构建自己的docker镜像和容器,启停也都会用了,下一步就需要持续构建发布docker的技能了. 我们希望能在代码提交后,有个远程服务能自动开始构建项目 ...