博客
关于我
强烈建议你试试无所不能的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

你可能感兴趣的文章
cer证书签名验证
查看>>
synchronized
查看>>
【深度学习】caffe 中的一些参数介绍
查看>>
Python-Web框架的本质
查看>>
QML学习笔记之一
查看>>
App右上角数字
查看>>
从.NET中委托写法的演变谈开去(上):委托与匿名方法
查看>>
小算法
查看>>
201521123024 《java程序设计》 第12周学习总结
查看>>
新作《ASP.NET MVC 5框架揭秘》正式出版
查看>>
IdentityServer4-用EF配置Client(一)
查看>>
WPF中实现多选ComboBox控件
查看>>
读构建之法第四章第十七章有感
查看>>
Windows Phone开发(4):框架和页 转:http://blog.csdn.net/tcjiaan/article/details/7263146
查看>>
Unity3D研究院之打开Activity与调用JAVA代码传递参数(十八)【转】
查看>>
python asyncio 异步实现mongodb数据转xls文件
查看>>
TestNG入门
查看>>
【ul开发攻略】HTML5/CSS3菜单代码 阴影+发光+圆角
查看>>
IOS-图片操作集合
查看>>
IO—》Properties类&序列化流与反序列化流
查看>>