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);
}
}
最新文章
- expect用法
- 虚拟机体验之 KVM 篇
- 服务器上index.jsp变空
- git之remote repository create(远程仓库创建)
- jQuery ui autocomplete下拉列表样式失效解决,三种获取数据源方式,
- 关于Oracle10G在库内导数据时,用到的更新语句----ZT
- php 魔鬼训练
- Java排序算法(1)
- ExtJS4.2学习(21)动态菜单与表格数据展示操作总结篇2
- SQL入门
- hdoj 1789 Doing Homework again
- mysql 导入excel 或 .csv
- ormlite 多表联合查询
- 小随笔:利用Shader给斯坦福兔子长毛和实现雪地效果
- LVS负载均衡介绍
- Defraggler磁盘碎片整理工具,让你的电脑读写速度更快
- web-storage-cache 使用JS数据缓存
- Java_Object_Date_System等常用类
- BSGS与扩展BSGS
- Express全系列教程之(四):获取Post参数的两种方式
热门文章
- 更改MVC3默认错误提示信息 模型验证 validation
- [LeetCode] Linked List Cycle II 链表环起始位置
- 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---13
- VIM使用技巧13
- 把握linux内核设计思想系列【转】
- iscsi 学习
- asp.net core 开发环境自定义域名及端口
- NanoPC-T3 64位裸机编程 —— 启动和运行状态切换
- Cat Snuke and a Voyage --AtCoder
- CodeForces - 258D Little Elephant and Broken Sorting