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

你可能感兴趣的文章