/**********************************************模拟页面************************************************************/

package session;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class SessionDemo1 extends HttpServlet {
    //session底层封装了cookie所以,如果,浏览器禁用了cookie那么sessionID就没法带过去了
    //解决的办法就是,通过超链接的形式将sessionId带过去,此时超链接的url地址要经过编码
    //这样就保证,即使你把浏览器的cookie禁用掉,我也能将sessionId带过去
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //模拟这种场景
        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;chatset=UTF-8");
        PrintWriter out = response.getWriter();
        
        request.getSession();
        //对url进行编码
        String url1 = response.encodeURL("/day07/SessionDemo2");
        String url2 = response.encodeURL("/day07/SessionDemo3");
        out.print("<a href='"+url1+"'>购物</a>     ");
        out.print("<a href='"+url2+"'>结帐</a>");
    }

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

}
/********************************************************购买页面***************************************************************/

package session;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class SessionDemo2 extends HttpServlet {
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;chatset=UTF-8");
        
        HttpSession session = request.getSession();
        session.setAttribute("good", "电视机");
        
    }

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

}
/*******************************************************8结帐页面******************************************************************/

package session;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class SessionDemo3 extends HttpServlet {
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;chatset=UTF-8");
        PrintWriter out = response.getWriter();
        
        HttpSession session = request.getSession(false);
        String value = (String) session.getAttribute("good");
        out.print("您购买的商品是"+value);
        
    }

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }

}

转载于:https://www.cnblogs.com/siashan/p/3916438.html

session 的工作原理以及使用细节和url编码相关推荐

  1. session的工作原理[择]

    session的工作原理 一.术语session 在我的经验里,session这个词被滥用的程度大概仅次于transaction,更加有趣的是transaction与session在某些语境下的含义是 ...

  2. HTTP Session 的工作原理以及几个思维扩展

    大家都知道,HTTP 协议本身是无状态的,Session 的出现解决了这个问题,也被大多数 Web 端采用. 但它背后的实现原理你是否有兴趣了解呢,以及在它基础上的思维发散,和你聊聊. 无状态的 HT ...

  3. java session原理_java web开发—session的工作原理总结

    session的工作原理总结 一.什么是session session是一次浏览器和服务器交互的会话,在jsp中,作为一个内置对象存在.我的理解,就是当用户打开网页时,程序会在浏览器中开辟一段空间来存 ...

  4. java中session的作用_java中session的工作原理是什么?和Cookies有何区别?

    现在大家学习的东西和以前大不相同了,越来越多的人倾向于去学习高新技术以获得更好的发展.java是很多人的第一选择.java中的知识还是很多的,今天就来为大家介绍一下. 首先来说一下java中sessi ...

  5. Session的工作原理

    session是服务器端的一个集合,可以存储任何东西.session最重要的特性,是可以识别客户. 1.Session的工作原理 当我们的Servlet需要使用Session时,执行下面的代码 Htt ...

  6. 会话(cookie的使用,路径和Session的工作原理,使用)

    1.状态管理----Cookie 1.1 为什么需要状态管理 HTTP协议是无状态的,不能保存每次提交的信息,即当服务器返回与请求相对应的应答之后,这次事务的所有信息就丢掉了. 如果用户发来一个新的请 ...

  7. PHP中session的工作原理

    一直在使用session存储数据,一直没有好好总结一下session的使用方式以及其工作原理 今天在这里做一下梳理 这里的介绍主要是基于php语言,其他的语言操作可能会有差别,但基本的原理不变. 1. ...

  8. session的工作原理【转】

    一直在使用session存储数据,一直没有好好总结一下session的使用方式以及其工作原理,今天在这里做一下梳理. 这里的介绍主要是基于php语言,其他的语言操作可能会有差别,但基本的原理不变. 1 ...

  9. PHP session的工作原理

    PHP SESSION原理 我们知道,session是在服务器端保持用户会话数据的一种方法,对应的cookie是在客户端保持用户数据.HTTP协议是一种无状态协议,服务器响应完之后就失去了与浏览器的联 ...

最新文章

  1. linux mysql 权限设置_Linux下mysql新建账号及权限设置
  2. [crypto]-02-非对称加解密RSA原理概念详解
  3. 循环、格式化输出、数据统计
  4. 02-伪异步I/O通讯模型
  5. C# 学生简单管理系统 数据库 1.0版本
  6. 34.Linux/Unix 系统编程手册(下) -- 进程组,会话和作业控制
  7. sourcetree向github推送代码提示密码错误
  8. 如何将mp4视频转换成aac音频
  9. UCOS操作系统——任务的挂起与恢复(四)
  10. 小葵花妈妈课堂开课了:《Runnable、Callable、Future、RunnableFuture、FutureTask 源码分析》...
  11. 打破认知:程序设计=算法+数据结构?
  12. imprinted weights
  13. 网关系统就该这么设计(万能通用),贼稳!
  14. 拥有有趣灵魂的程序员们,程序员访谈(四)
  15. ubuntu20 装机配置、安装必备软件
  16. 详解电子配线架的应用
  17. 计算机四级嵌入式知识点——《计算机组成与接口》
  18. 前端经典题目——使用 Promise 实现红绿灯交替重复亮
  19. [PTA]实验11-1-7 藏头诗
  20. 甜橙金融如何利用 Apache Pulsar 在日均上亿的交易中抵御金融诈骗

热门文章

  1. 在VC中集成cURL
  2. 2013年工作中用到的10个命令:11-20
  3. open_cursors参数设置调优
  4. 浅谈C#深拷贝,浅拷贝
  5. 数据结构笔记(三十)-- 查找的基本概念和相关的顺序查找
  6. 【字符串】面试题之替换子串
  7. php7 断言,PHP7.2常用新特性和函数
  8. _CentOS「linux」学习笔记11:crontab定时任务常用参数和基本语法
  9. python提现_用Python创建比特币钱包,读余额,极速免费转账,标准转账
  10. qt 提升 全局包含_研讨引思想碰撞,学习促共同提升 | 粤渝两地幼教同行深度交流...