博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Cookie&Seesion
阅读量:5087 次
发布时间:2019-06-13

本文共 4113 字,大约阅读时间需要 13 分钟。

 

Cookie&Seesion

Cookie

商品浏览记录

Jsp里面使用java代码

jap(Java Server Pager) 最终会翻译成一个类,就是一个Servlet.

1.定义全局变量<%! int a = 99%>2.定义局部变量<% int b = 999 %>
<%=a %><%=b %>

Cookie总结

1.cookie是服务器给客户端发送过来的一小份数据,并且保存在客户端上.

2.获取cookie request.getCookie();

添加cookie response.addCookie();

3.Cookie分类

会话cookie:默认情况下关闭了浏览器,那么Cookie就会消失

持久cookie:在一定时间内有效,并且会保存在客户端上.

cookie.setMaxAge(0);//立即删除

cookie.setMaxAge(1000);//1000秒

Cookie的安全问题

1.Cookie会保存在客户端上,所以有安全隐患问题;

2.Cookie的大小与个数有限制;

Session(会话)

Session是基于Cookie的一种会话机制.Cookie是服务器返回一小份数据给客户端,并且存放在客户端上.Session是数据存放在服务器端.

常用API

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {		HttpSession session = request.getSession();		//获取会话id		String id = session.getId();		System.out.println("会话id:"+id);		//存值		session.setAttribute(arg0, arg1);		//取值		session.getAttribute(arg0);		//移除值		session.removeAttribute();	}

Session何时创建,何时销毁?

创建:

如果有在servlet里面调用了request.getSession()时就创建了Seesion,

销毁:

Session是存放在服务器的内存中的一份数据.当然可以持久化.redis.即使关了服务器,Session也不会销毁.

1.关闭服务器;

2.session会话时间过期,默认有效期:30分钟

案例:简单购物车.

product_list.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>
Insert title here

Iphone7

小米 mix3

vivo xpro

三星note8

魅族7

华为荣耀20

CarServlet.java

package nike.hu;import java.io.IOException;import java.util.LinkedHashMap;import java.util.Map;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;/** * Servlet implementation class CarServlet */public class CarServlet extends HttpServlet {	private static final long serialVersionUID = 1L;           	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {				response.setContentType("text/html;charset=UTF-8");		//1.获取要购买商品的id		int id = Integer.parseInt( request.getParameter("id"));		String[] names = {"Iphone7","小米mix3","vivoxpro","三星note8","魅族7","华为荣耀20",};		//取到id对应的商品名称		String name = names[id];		//2.获取购物车存放东西的session		Map
map =(Map
) request.getSession().getAttribute("cart"); //session里面没有存放过任何东西 if(map == null){ map = new LinkedHashMap
(); request.getSession().setAttribute("cart", map); } //判断购物车里面有没有该商品 if(map.containsKey(name)){ int value=map.get(name); map.put(name, value+1); }else{ map.put(name, 1); } //输出界面(跳转) response.getWriter().write("

继续购物

"); response.getWriter().write("

去购物车结算

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

cart.jsp

<%@page import="java.util.Map"%><%@ page language="java" contentType="text/html; charset=UTF-8"    pageEncoding="UTF-8"%>
Insert title here

你的购物车商品如下:

<% //先获取到map Map
map =(Map
) session.getAttribute("cart"); //遍历map if(map!=null){ for(String key:map.keySet()){ int value = map.get(key); %>

名称:<%=key %> 数量:<%=value %>

<% } } %>

清空购物车

ClearCartServlet.java

package nike.hu;import java.io.IOException;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;/** * Servlet implementation class ClearCartServlet */public class ClearCartServlet extends HttpServlet {	private static final long serialVersionUID = 1L;           	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {		HttpSession session = request.getSession();				//1.从session中移除某一个数据		//session.removeAttribute("cart");		//2.强制干掉会话,里面存放的任何数据就都没有了		session.invalidate();		response.sendRedirect("cart.jsp");	}		protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {		doGet(request, response);	}}

 

转载于:https://www.cnblogs.com/homelessdog/p/10104780.html

你可能感兴趣的文章
ES6内置方法find 和 filter的区别在哪
查看>>
硬件笔记之Thinkpad T470P更换2K屏幕
查看>>
getElement的几中属性介绍
查看>>
设计器 和后台代码的转换 快捷键
查看>>
STL容器之vector
查看>>
数据中心虚拟化技术
查看>>
复习文件操作
查看>>
SQL Server 使用作业设置定时任务之一(转载)
查看>>
第二阶段冲刺-01
查看>>
BZOJ1045 HAOI2008 糖果传递
查看>>
JavaScript 克隆数组
查看>>
eggs
查看>>
python3 生成器与迭代器
查看>>
java编写提升性能的代码
查看>>
list 容器 排序函数.xml
查看>>
《Genesis-3D开源游戏引擎完整实例教程-跑酷游戏篇03:暂停游戏》
查看>>
CPU,寄存器,一缓二缓.... RAM ROM 外部存储器等简介
查看>>
git .gitignore 文件不起作用
查看>>
Alan Turing的纪录片观后感
查看>>
c#自定义控件中的事件处理
查看>>