session 的工作原理以及使用细节和url编码
/**********************************************模拟页面************************************************************/
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编码相关推荐
- session的工作原理[择]
session的工作原理 一.术语session 在我的经验里,session这个词被滥用的程度大概仅次于transaction,更加有趣的是transaction与session在某些语境下的含义是 ...
- HTTP Session 的工作原理以及几个思维扩展
大家都知道,HTTP 协议本身是无状态的,Session 的出现解决了这个问题,也被大多数 Web 端采用. 但它背后的实现原理你是否有兴趣了解呢,以及在它基础上的思维发散,和你聊聊. 无状态的 HT ...
- java session原理_java web开发—session的工作原理总结
session的工作原理总结 一.什么是session session是一次浏览器和服务器交互的会话,在jsp中,作为一个内置对象存在.我的理解,就是当用户打开网页时,程序会在浏览器中开辟一段空间来存 ...
- java中session的作用_java中session的工作原理是什么?和Cookies有何区别?
现在大家学习的东西和以前大不相同了,越来越多的人倾向于去学习高新技术以获得更好的发展.java是很多人的第一选择.java中的知识还是很多的,今天就来为大家介绍一下. 首先来说一下java中sessi ...
- Session的工作原理
session是服务器端的一个集合,可以存储任何东西.session最重要的特性,是可以识别客户. 1.Session的工作原理 当我们的Servlet需要使用Session时,执行下面的代码 Htt ...
- 会话(cookie的使用,路径和Session的工作原理,使用)
1.状态管理----Cookie 1.1 为什么需要状态管理 HTTP协议是无状态的,不能保存每次提交的信息,即当服务器返回与请求相对应的应答之后,这次事务的所有信息就丢掉了. 如果用户发来一个新的请 ...
- PHP中session的工作原理
一直在使用session存储数据,一直没有好好总结一下session的使用方式以及其工作原理 今天在这里做一下梳理 这里的介绍主要是基于php语言,其他的语言操作可能会有差别,但基本的原理不变. 1. ...
- session的工作原理【转】
一直在使用session存储数据,一直没有好好总结一下session的使用方式以及其工作原理,今天在这里做一下梳理. 这里的介绍主要是基于php语言,其他的语言操作可能会有差别,但基本的原理不变. 1 ...
- PHP session的工作原理
PHP SESSION原理 我们知道,session是在服务器端保持用户会话数据的一种方法,对应的cookie是在客户端保持用户数据.HTTP协议是一种无状态协议,服务器响应完之后就失去了与浏览器的联 ...
最新文章
- linux mysql 权限设置_Linux下mysql新建账号及权限设置
- [crypto]-02-非对称加解密RSA原理概念详解
- 循环、格式化输出、数据统计
- 02-伪异步I/O通讯模型
- C# 学生简单管理系统 数据库 1.0版本
- 34.Linux/Unix 系统编程手册(下) -- 进程组,会话和作业控制
- sourcetree向github推送代码提示密码错误
- 如何将mp4视频转换成aac音频
- UCOS操作系统——任务的挂起与恢复(四)
- 小葵花妈妈课堂开课了:《Runnable、Callable、Future、RunnableFuture、FutureTask 源码分析》...
- 打破认知:程序设计=算法+数据结构?
- imprinted weights
- 网关系统就该这么设计(万能通用),贼稳!
- 拥有有趣灵魂的程序员们,程序员访谈(四)
- ubuntu20 装机配置、安装必备软件
- 详解电子配线架的应用
- 计算机四级嵌入式知识点——《计算机组成与接口》
- 前端经典题目——使用 Promise 实现红绿灯交替重复亮
- [PTA]实验11-1-7 藏头诗
- 甜橙金融如何利用 Apache Pulsar 在日均上亿的交易中抵御金融诈骗
热门文章
- 在VC中集成cURL
- 2013年工作中用到的10个命令:11-20
- open_cursors参数设置调优
- 浅谈C#深拷贝,浅拷贝
- 数据结构笔记(三十)-- 查找的基本概念和相关的顺序查找
- 【字符串】面试题之替换子串
- php7 断言,PHP7.2常用新特性和函数
- _CentOS「linux」学习笔记11:crontab定时任务常用参数和基本语法
- python提现_用Python创建比特币钱包,读余额,极速免费转账,标准转账
- qt 提升 全局包含_研讨引思想碰撞,学习促共同提升 | 粤渝两地幼教同行深度交流...